C语言:一些做过的算法题。

1. 练习:输入一个数,得到数的长度(位数)。

#include <stdio.h>
int main()
{
    int a;
    int count=0;
    printf("请输入一个数:");
    scanf("%d", &a);
    for (;;) {
        a/=10;
        if (a!=0) {
            count++;
        } else break;
    }

    printf("%d\n", count);
}

2. 将a中n个整数按相反方向存放。(这类算法需要线下手动设计)。

#include <stdio.h>
void inv(int *x, int y)
{
    int temp,i,j;
    int m=(y-1)/2; //取数组中间的部分
    for (i=0;i<=m;i++) {
        j=y-1-i; //获取i相对应的最右边的下标
        temp=x[i];
        x[i]=x[j];
        x[j]=temp;
    }
    return;
}

int main()
{
    //把数组a中n个整数按倒序排列。
    int a[] = {1,23,33,44,55,66};
    inv(a,6);
    for (int i=0;i<6;i++) printf("%d, ", a[i]);
    printf("\n");
}

3. 用选择法对10个整数按由大到小顺序排列。

4.将字符串a复制为字符串b。最关键的地方是for循环中第二个起判断的第二个表达式用 *(a+i)!=‘\0‘

#include <stdio.h>
int main()
{
    char a[] = "I am a boy", b[20];
    for (int i=0;*(a+i)!=‘\0‘;i++) {
        b[i]=*(a+i);
     }
     for (int i=0;*(b+i)!=0;i++) {
         printf("%c", b[i]);
     }
}

第二种方法:

while ((*b=*a)!=‘\0‘) {
    a++;
    b++;
}

第三种方法:

while ((*b=*a++)!=‘\0‘);

第四中方法:

while(*a!=‘\0‘) {
    *b++=*a++;
    *b=‘\0‘
}
时间: 2024-10-13 08:22:17

C语言:一些做过的算法题。的相关文章

FCC的javascript初级算法题解答

FCC上的javascript基础算法题 前一阵子做的基础算法题,感觉做完后收获还蛮大的,现在将自己的做法总结出来,供大家参考讨论.基本上做到尽量简短有效,但有些算法还可以继续简化,比如第七题若采用正则表达式来匹配,则一行代码就可以完成需求.欢迎大家提出不同解法.末尾有FCC的链接,感兴趣的同学可以去做一做. 1.翻转字符串 function reverseString(str) { var arr=str.split(""); str=arr.reverse().join("

C语言程序设计做题笔记之C语言基础知识(上)

C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎所以的任务,包括会计应用程序.字处理程序.游戏.操作系统等.它不仅是更高级语言(如C++)的基础,目前还以Objective C的形式开发手机应用程序.目前,C语言最新版本由ISO/IEC 9899:2011 文档定义.           数据结构+算法=程序 1.1 C程序和程序设计 (1)以下

C语言程序设计做题笔记之C语言基础知识(下)

C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的几乎所以的任务,包括会计应用程序.字处理程序.游戏.操作系统等.它不仅是更高级语言(如C++) 的基础,目前还以Objective C的形式开发手机应用程序.目前,C语言最新版本由ISO/IEC 9899:2011 文档定义.           数据结构+算法=程序 1.1 C程序和程序设计 (1

删除指定字符串的算法题,面试时候没做出来

很多年没来这里了. 今天上午参加了字节跳动视频面试,面试官让现场做一道算法题,有点紧张做错了.我把题目发出来,有需要的朋友看看. 题目:删除字符串 描述:给定一个字符串,不考虑大小写,将该字符串中连续的某个子串'XXX'删除,返回结果中不包含'XXX'. 例子: 输入字符串:aaaabbbbb XXX子串:ab 输出结果:b 结束面试后,花了几分钟时间做了一下(用python语言实现). 1 def removeString(in_str, remove_str='ab'): 2 ret_lis

笔试算法题

转自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html 1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  i

第一篇博客--记面陌陌科技计算机视觉算法工程师被刷经历(附面试过程中被问倒的一些算法题分析)

求职季,真的会让一个人变得有些不一样吧,比如我,对于一个菜鸟来说,最近一段时间焦虑不安外加有点自闭... 前段时间在校内网上看到了陌陌科技内推计算机视觉算法工程师和机器学习算法工程师的消息,抱着试试的心态整理了一份简历按照提供的邮箱投出去了,我想这次应该又是石沉大海了吧,谁想在一周前闷热的一天在嘈杂的餐厅接到了陌陌科技HR的电话,一周后的周五下午4点在西安的一家咖啡馆参加面试.我问清了时间地点并道谢了HR后并挂了电话继续吃饭. 好吧,这周每天都有各个公司的笔试,外加这周周五上午的组会轮到我做组会

LeetCode算法题-Sqrt(Java实现)

这是悦乐书的第158次更新,第160篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第17题(顺位题号是69). 计算并返回x的平方根,其中x保证为非负整数. 由于返回类型是整数,因此将截断十进制数字,并仅返回结果的整数部分.例如: 输入:4 输出:2 输入:8 输出:2 说明:8的平方根是2.82842 ...,从2以后小数部分被截断,返回2 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试.

LeetCode算法题-Single Number(Java实现)

这是悦乐书的第175次更新,第177篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第34题(顺位题号是136).给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次. 找到那个只出现了一次的元素.例如: 输入:[2,2,1] 输出:1 输入:[4,1,2,1,2] 输出:4 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 因为已经限定传入的数组不为空,所以此题不需要

LeetCode算法题-Min Stack(Java实现)

这是悦乐书的第177次更新,第179篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第36题(顺位题号是155).设计一个支持push,pop,top和在恒定时间内检索最小元素的堆栈. push(x) - 将元素x推入堆栈. pop() - 删除堆栈顶部的元素. top() - 获取顶部元素. getMin() - 检索堆栈中的最小元素. 例如: MinStack minStack = new MinStack(); minStack.push(-2); minSta