嵌入式初学-C语言-练习三

avatar
作者
猴君
阅读量:0

#部分题目可能在之前的博客中有,请谅解,保证常见题型均被发出#

1.计算n以内所有正奇数的和 ? n值通过键盘输入

代码:

  1 /*   2  需求:计算n以内所有正奇数的和 ? n值通过键盘输入   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int sum = 0;   9     int a = 0;  10   11     printf("请输入一个正值:");  12     scanf("%d",&sum);  13   14     for(int i = 1;i <= sum;i++)  15     {  16         if(i % 2 != 0)  17         {  18             a += i;  19         }  20     }  21   22     printf("正奇数和为:%d\n",a);  23   24     return 0;  25 }
​结果:

2.计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。

代码:

  1 /*   2   计算 1+1/(2*3)+1/(3*4)+...+1/(n*(n+1))=?直到最后一相值小于0.00001为至。   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     double sum = 1.0;   9     double i = 1.0;  10     do  11     {  12   13        sum = sum + 1.0 / ((i + 1) * (i + 2));  14        i++;  15   16     }while(1.0 / ((i + 1) * (i + 2)) >= 0.00001);  17   18   19     printf("%lf\n",sum);  20   21     return 0;  22 } ​

结果:

3.计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入

代码:

  1 /*   2   需求:计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int a;   9     int b = 2;  10     double sum = 1;    //找出题目的关系为1加上n分之1,再减n+1分之1,将算是前1直接赋给sum,利于找出关系表达式  11     printf("请输入一个数字:\n");  12     scanf("%d",&a);  13   14     do  15     {  16         if(b % 2 == 0)  //题目可知被二整除为加号  17         {  18             sum += 1.0 / b;  19         }  20         else            //不被二整除为减号  21         {  22             sum -= 1.0 / b;  23         }  24         b++;  25     }while(b <= a);   //当b大于输入值时跳出循环  26   27         printf("输出的值为:%f\n",sum);  28   29   30   31     return 0;  32 } ​

结果:

4.计算n的阶乘 ? n! = 123.....*n n值通过键盘输入

代码:

  1 /*   2  需求:计算n的阶乘 ? n! = 123.....*n n值通过键盘输入   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int b = 0,sum = 1;   //sum要算乘法所以赋值不能为0   9     printf("请输入一个整数数值:");  10     scanf("%d",&b);  11   12     for(int a = 1;a <= b;a++)   //当a循环到大于输入值b时停止循环  13     {  14         sum *= a;   //等价于 sum = sum * a  15     }  16   17     printf("你输入的数值%d的阶乘为%d\n",b,sum);  18   19     return 0;  20 } ​

结果:

5.输出半径为1~10的圆面积,面积大于100时停止

代码:

  1 /*   2   需求:输出半径为1~10的圆面积,面积大于100时停止   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     double s = 1.0;   9     int r = 1;  10     double PI = 3.1415926;  11     while(1)        //当前循环为死循环,但是是可控制死循环  12     {  13         s = PI * r * r;   //圆的面积=pi×r×r  14         r++;  15         if(s > 100)  16         {  17             break;   //面积大于100,提前跳出,不再输出  18         }  19         printf("当前圆的面积为:%.3f\n",s);  //每次输出圆的面积  20     }  21   22     printf("输出结束!\n");  23   24     return 0;  25 }
结果:

6.求输入的十个整数中正数的个数及其平均值

代码:

  1 /*   2   需求:求输入的十个整数中正数的个数及其平均值   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int b;   9     int d = 0;  10     double sum = 0.0;  11     double c = 0.0;  12   13     for(int a = 1;a <= 10;a++)  14     {  15         printf("请输入一个数:");  16         scanf("%d",&b);  17   18         if(b >= 0)  19         {  20             sum = sum + b;  21             d++;  22         }  23     }  24   25     c = sum / d;  26     printf("您输入的正数共%d个\n",d);  27     printf("输入数的均值为:%.2f\n",c);  28   29     return 0;  30 } ​

结果:

7.打印出100以内能整除7之外的的自然数

代码:

  1 /*   2   需求:打印出100以内能整除7之外的的自然数   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     for(int a = 1;a <= 100;a++)   9     {  10         if(a % 7 ==0)   //如果能被7整除则输出  11         {  12             printf("%d ",a);  //每满足一个打印一次,并且空格  13         }  14     }  15   16     printf("\n");  //回车保证美观性  17   18     return 0;  19 }  20  ​

结果:

8.打印乘法表

代码:

  1 /**   2   *嵌套循环案例:九九乘法表   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     //九九乘法表,总共9行,列数受行数影响,涉及行列首选双重嵌套for循环。   9     //for循环,外层循环控制行数,内层控制列数  10   11     //外层控制行:9  12     for(int i = 1;i <= 9;i++)  13     {  14         //内层循环控制列:9,列小于等于当前行  15         for(int j = 1;j <= i;j++)  16         {  17             //生成当前行中所有乘法序列  18             printf("%d×%d=%d ",j,i,i*j);  19         }  20   21         printf("\n");//每一行结束需要换行      22   23     }  24     printf("\n");  25   26     return 0;  27 } ​

结果:

作业9

‘. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三 值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?’

代码:

  1 /*   2   需求:我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int man;     //公鸡   9     int woman;   //母鸡  10     int son;     //雏鸡  11   12     for(man = 0;man < 20;man++) //公鸡最多买20只,所以买100只鸡不可能大于20只公鸡  13     {  14         for(woman = 0;woman < 33;woman++)  //最多33只母鸡,买100只鸡不可能大于33只母鸡  15         {  16             for(son = 0;son < 100;son++)//买100只鸡不可能大于100只小鸡  17             {  18                 if(man*5 + woman*3 + son/3 ==100 && man + woman + son ==100 && son%3 ==0)  19                 {  20                     printf("公鸡:%d只,母鸡:%d只,雏鸡:%d只\n",man,woman,son);  21                 }  22             }  23         }  24     }  25   26     printf("\n");  27   28     return 0;  29 }

结果:

10.从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。

代码:

  1 /*   2   需求:从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int max = 0;   9     int i = 1;  10   11     while(1)  12     {  13         printf("请输入无符号整型数据:");  14         scanf("%d",&i);  15   16         if(i == 0)  17         {  18             break;      //循环为死循环,当i=0时控制循环结束  19         }  20         else if(i <= 0)  21         {  22             continue;       //如果输入小于0,跳过本次循环  23         }  24         else if(i > max)  25         {  26             max = i;    //将输入最大值赋给max  27         }  28   29     }  30   31     printf("您输入数值中最大值为:%d\n",max);  32   33     return 0;  34 }

结果:

11.判断一个数是不是回文数。

代码:

  1 /*   2   需求:判断一个数是不是回文数   3 */   4 #include <stdio.h>   5    6 int main()   7 {   8     int a, b;   9     int num = 0;  10     printf("请输入一个整数: ");  11     scanf("%d", &a);  12   13     b = a;  14   15     while (b!= 0)  16     {  17         num = num * 10 + b % 10; //实现反转  18         b /= 10;  19     }  20   21     if (a == num) {  22         printf("%d 是回文数\n", a); //如果输出的和输入的数相同  23     }  24     else  25     {  26         printf("%d 不是回文数\n", a);  27     }  28   29     return 0;  30 }

结果:

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!