当前位置:   article > 正文

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

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

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

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

代码:

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

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

代码:

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

结果:

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

代码:

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

结果:

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

代码:

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

结果:

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

代码:

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

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

代码:

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

结果:

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

代码:

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

结果:

8.打印乘法表

代码:

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

结果:

作业9

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

代码:

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

结果:

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

代码:

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

结果:

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

代码:

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

结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/928424
推荐阅读
相关标签
  

闽ICP备14008679号