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

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

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

代码:

cs 复制代码
  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为至。

代码:

cs 复制代码
  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通过键盘输入

代码:

cs 复制代码
  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值通过键盘输入

代码:

cs 复制代码
  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时停止

代码:

cs 复制代码
  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.求输入的十个整数中正数的个数及其平均值

代码:

cs 复制代码
  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之外的的自然数

代码:

cs 复制代码
  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.打印乘法表

代码:

cs 复制代码
  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

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

代码:

cs 复制代码
  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 结束 ,输出所输入数据中的最大值。

代码:

cs 复制代码
  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.判断一个数是不是回文数。

代码:

cs 复制代码
  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 }

结果:

相关推荐
qq_43355454几秒前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
努力学习编程的伍大侠4 分钟前
基础排序算法
数据结构·c++·算法
数据小爬虫@19 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
ZJ_.21 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
Narutolxy26 分钟前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
XiaoLeisj32 分钟前
【递归,搜索与回溯算法 & 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)
数据结构·算法·leetcode·决策树·深度优先·剪枝
Hello.Reader34 分钟前
全面解析 Golang Gin 框架
开发语言·golang·gin
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
yuyanjingtao1 小时前
CCF-GESP 等级考试 2023年9月认证C++四级真题解析
c++·青少年编程·gesp·csp-j/s·编程等级考试