24⬆(2)并不是进阶的意思,而是这是我新的一天写的发布
1,计算n的阶乘 ? n! = 1*2*3.....*n n值通过键盘输入
/*1,计算n的阶乘 ? ?n! = 1*2*3.....*n ?n值通过键盘输入*/#include <stdio.h>int main(void)
{int n;printf("请输入一个整数来计算其阶乘:");scanf("%d",&n);if(n < 0){printf("阶乘不适用于负数,请输入一个非负整数!\n");return 1;}else if(n == 0){printf("0的阶乘是1\n");return 0;}int i;int fact = 1;for(i = 1;i <= n;i++){fact *= i; //fact *= i就等于fact * i = fact}printf("%d的阶乘是: %d\n",n,fact);return 0;}
2、求输入的十个整数中正数的个数及其平均值
/*2.求输入的十个整数中正数的个数及其平均值*/#include <stdio.h>int main(void)
{int num;int count = 0; //定义一个整数变量count,并初始化为0,用于跟踪正数的个数int sum = 0; //定义变量sum求数字总和float ave = 0; //定义变量求均值for(int i = 0;i < 10;i++){printf("请输入第%d个整数:",i+1);scanf("%d",&num);if(num > 0) //找数字大于零{count++; //计算正数的个数以便求均值avesum += num; //累加正数和}}if(count > 0) //次数大于0说明有正数{ave = (float)sum / count; //将sum从int变为float,以确保数据准确}else{printf("没有输入正数。\n");return 1;}printf("正数的个数是: %d\n",count);printf("正数的平均值是: %.2f\n",ave);return 0;
}
3. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
x,y,z
x+y+z=100
5x+3y+z=100
z=100-x-y
x,y,z ; x+y+z=100 ; 5x+3y+z/3=100 这里注意z/3才是一只价格 ; z=100-x-y数学分析,放入循环
/*3.鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?*/
//x,y,z //x+y+z=100 //5x+3y+z/3=100 这里注意z/3才是一只价格 // z=100-x-y数学分析,放入循环#include <stdio.h>int main(void)
{int x,y,z; // x, y, z 分别代表鸡翁、鸡母和鸡雏的数量for(x = 0;x < 100;x++) //嵌套循环求数量,当然这里也可以从100/5=20,最多只能买20只{for(y = 0;y < 100;y++) 这里也一样100/3最多33只{z = 100 - x- y;//这里if语句内鸡雏要能被3整除,我理解的是三种鸡都要大于0 if(x + y + z == 100 &&5 * x + 3 * y + z / 3 == 100 && z % 3 == 0 && x > 0 && y > 0 && z > 0){printf("鸡翁: %d,鸡母: %d,鸡雏: %d\n",x,y,z);}}}return 0;}
4.从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
/*4.从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。*/
//我列了三种方法,for,while,do while三种无限循环,都可以#include <stdio.h>int main(void)
{unsigned num;unsigned int max = 0;printf("请输入无符号整数(输入0结束):");/* for(;;) //无限循环{scanf("%u",&num);if(num == 0){break; //跳出循环}if(num > max){max = num;}} *//* while(1) //while无限循环{scanf("%u",&num);if(num == 0){break;}if(num > max){max = num;}} */do{scanf("%u",&num);if(num == 0){break;}if(num > max){max = num;}}while(1);printf("所输入数据中的最大值是:%u\n",max);return 0;
}