上机
-
计算n以内所有正奇数的和 ? n值通过键盘输入
#include <stdio.h> int main() { int sum = 0; int i = 1; int n; printf("请输入一个范围\n"); scanf("%d",&n); do { if(i % 2 != 0)//判断奇数 { sum += i; } i++; }while(i <= n);//限定条件 printf("范围内的正奇数和为%d\n",sum); return 0; }
运行结果:
-
计算 1 + 1/(2 * 3) + 1/(3 * 4) + …+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。
#include <stdio.h>
int main() {
// 初始化变量
double sum = 1.0;
double term;
int n = 2;
// 计算每一项并累加到 sum 中,直到最后一项小于 0.00001
do {
term = 1.0 / (n * (n + 1));
sum += term;
n++;
} while (term >= 0.00001);
// 输出结果
printf("结果为: %.5f\n", sum);
return 0;
}
运行结果:
- 计算1+1/2 - 1/3 + 1/4 - 1/5 …+1/n= ? n通过键盘输入
#include <stdio.h>
int main() {
int n;
double sum = 1.0; // 初始和为第一项1.0
printf("请输入一个整数 n:");
scanf("%d", &n);
for (int i = 2; i <= n; i++)
{
if (i % 2 == 0)
{
sum += 1.0 / i; // 偶数项加正数
}
else
{
sum -= 1.0 / i; // 奇数项减负数
}
}
printf("累加和为: %.6f\n", sum);
return 0;
}
运行结果:
- 计算n的阶乘 ? n! = 123…*n n值通过键盘输入
//需求:for案例用户可通过键盘录入一个整数n用来作为阶乘的最高位数
#include <stdio.h>
#include <math.h>
int main()
{
int n = 1;//接受控制台输入,作为阶乘最高位
int r = 1;//用来接收计算结果
printf("请输入一个整数:\n");
scanf("%d",&n);
//循环实现阶乘
for(int i = 1;i <= fabs(n);i++)
{
r *= i;
}
printf("1~%d之间的阶乘的结果是%d\n",n,r);
return 0;
}
运行结果:
- 输出半径为1~10的圆面积,面积大于100时停止
#include <stdio.h>
#include <math.h>
#define PI 3.14
int main()
{
int s,s1,r;
for(int r = 1;r <= 10;r++)
{
s = PI * r * r;
s1 += s;
if(s > 100)
{
printf("计算停止\n");
}
}
printf("半径1~10的圆面积为%d\n",s1);
return 0;
}
运行结果:
- 求输入的十个整数中正数的个数及其平均值
#include <stdio.h>
int main()
{
int num;//定义输入变量
int count = 0;//正数的个数统计
int sum = 0;//初始化正数的和为0
printf("请输入10个整数\n");//提示信息
//录入数据
for(int i = 0;i <10;i++)
{
scanf("%d",&num);
//计算正数的整合
if(num>0)
{
sum += num;
count++;
}
}
// 计算正数的平均值
double average = 0.0;
if (count > 0)
{
average = (double)sum / count;
}
// 输出结果
printf("正数的个数为:%d\n", count);
printf("正数的总和为:%d\n", sum);
printf("正数的平均值为:%.2f\n", average);
return 0;
}
运行结果:
- 打印出100以内能整除7之外的的自然数
#include <stdio.h>
int main()
{
int i;
for(i = 0;i < 100;i++)
{
if(i % 7 != 0)
printf("该值为:%d\n",i);
}
return 0;
}
运行结果:
- 打印乘法表
/*
*嵌套循环案例九九乘法表
*/
#include <stdio.h>
int main()
{
//外层循环控制行
for(int i = 1;i <= 9;i++)
{
//内层循环控制列<=行
for(int j = 1;j <= i;j++)
{
//生成当前行中的乘法序列
printf("%d × %d = %d\t",j,i,i*j);
}
//一行中所有列输出完毕,需要换行
printf("\n");
}
printf("\n");
return 0;
}
运行结果:
9.我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三
值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
#include <stdio.h>
// 公鸡、母鸡和小鸡的数量
int cock, hen, chick;
// 枚举所有可能的情况
void search()
{
for (cock = 0; cock <= 100; cock++)
{
for (hen = 0; hen <= 100; hen++)
{
chick = 100 - cock - hen;
// 满足条件:公鸡每只 5 文钱,母鸡每只 3 文钱,小鸡每三只 1 文钱
if (5 * cock + 3 * hen + 1.0 / 3 * chick == 100)
{
printf("公鸡数量:%d,母鸡数量:%d,小鸡数量:%d\n", cock, hen, chick);
}
}
}
}
int main()
{
search();
return 0;
运行结果:
- 从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
#include <stdio.h>
int main()
{
int max = 0;
int i;
do
{
printf("请输入您的数值:\n");
scanf("%d", &i);
if (i > max )
{
max = i;
}
else if (i == 0)
{
break;
}
} while (1);
printf("最小的值为%d\n", max);
return 0;
}
运行结果:
思考题
- 判断一个数是不是回文数。(回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。如:12321
#include <stdio.h>
int main()
{ //定义变量
int num,count,recount,other;
//提示信息
printf("请输入数值\n");
scanf("%d",&num);
//存储输入值
count = num;
//循环
while(num != 0)
{
//整数的逆转
other = num % 10;
recount = recount * 10 + other;
//跳出循环的限定条件
num /= 10;
}
//条件判断
if(count == recount)
{
printf("%d:为回文数\n",count);
}
else
{
printf("该数不是回文数\n");
}
return 0;
}
运行结果: