循环
2024 10-31
循环
2024 10-31
循环
Oct 31, 2024
// 计算正整数 1 ~ 100 中的奇数之和及偶数之和.
int odd = 0, even = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2) {
// 奇数
odd += i;
}
else {
even += i;
}
}
printf("奇数之和: %d \n偶数之和: %d", odd, even);
// 从 5 ~ 100 之间找出能被 5 或 7 整除的数.
printf("能被 5 和 7 整除的数: ");
for (int i = 5; i <= 100; i++) {
if (!(i % 5) || !(i % 7)) {
printf("%d, ", i);
}
}
// 编程统计全班同学成绩.要求每次从键盘输入一个学生 2 门分数, 计算输出每个学生的平均分, 如果平均分大于等于 85 为优秀、85 ~ 60 为通过, 统计出成绩优秀的学生和通过的学生人数.
int a, b, excellent = 0, pass = 0, i = 1;
while (1) {
a = 0;
b = 0;
printf("输入学生 %d 成绩 A 和成绩 B (输入小于0的数结束): ", i);
scanf("%d,%d", &a, &b);
if (a < 0 || b < 0) {
printf("成绩优秀的有 %d 人, 通过的有 %d 人", excellent, pass);
break;
}
int ave = (a + b) / 2;
printf("学生 %d 平均分为: %d \n", i, ave);
if (ave >= 85) {
excellent++;
}
else if (ave >= 60 && ave <= 84) {
pass++;
}
printf("\n");
i++;
}
// 输入 10 个数, 统计并输出正数、负数和 0 的个数.
int num, pos = 0, nega = 0, zero = 0;
for (int i = 1; i <= 10; i++) {
printf("请输入第 %d 个数: ", i);
scanf("%d", &num);
if (num > 0) {
pos++;
}
else if (num < 0) {
nega++;
}
else {
zero++;
}
};
printf("正数有: %d 个, 负数有: %d 个, 0有: %d 个", pos, nega, zero);
// 打印输出所有的水仙花数, 所谓的水仙花数指的是一个三位数, 其各位数的立方和等于数本身.如 153 = 1^3 + 5^3 + 3^3, 所以 153 是一个水仙花数.
for (int i = 100; i <= 999; i++) {
int b = i / 100;
int s = i / 10 % 10;
int g = i % 10;
if (i == b * b * b + s * s * s + g * g * g) {
printf("%d, ", i);
}
}
// 一篮子鸡蛋, 拿走 2 个剩 1 个, 拿走 3 个剩 2 个, 拿走 5 个剩 4 个. 一个鸡蛋 0.4 元, 这一篮子鸡蛋能卖多少钱.
for (int i = 0; ;i++) {
if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4) {
printf("要赔偿: %.2f", (float)i * 0.4);
break;
}
}
// 一辆卡车违反交通规则, 撞人逃逸. 现场三人目击事件, 但都没有记住车号, 只记下车的一些特征. 甲说: 牌照的前两位数字是相同的; 乙说: 牌照的后两位数字是相同的; 丙是位数学家, 他说: 四位的车号正好是一个整数的平方. 请根据以上线索求出车号.
for (int i = 1000; i <= 9999; i++) {
int x = i / 100;
int y = i % 100;
int a = x / 10;
int b = x % 10;
int d = y / 10;
int e = y % 10;
if (a == b && d == e) {
float n = sqrt(i);
if (n - (int)n == 0) {
printf("The number is %d", i);
}
}
}