练习题解答
练习 1:计算倒数及倒数总和
#include <stdio.h>
int main(void)
{
double numbers[5] = {0.0};
double rnums[5] = {0.0};
double sum = 0.0;
for(int i = 0; i < 5; i++)
{
printf("%d>", i + 1);
scanf("%lf", &numbers[i]);
rnums[i] = 1.0 / numbers[i];
sum += rnums[i];
}
for(int i = 0; i < 5; i++)
{
printf("%lf\n", rnums[i]);
}
printf("倒数总和:%lf\n", sum);
return 0;
}Code language: PHP (php)
练习 2:数列求和
#include <stdio.h>
int main(void)
{
double numbers[100] = {0.0};
for(int i = 2; i <= 200; i += 2)
{
numbers[i / 2 - 1] = 1.0 / (i * (i + 1) * (i + 2));
}
double res = 0.0;
for(int i = 0; i < 100; i++)
{
if(i % 2 == 0)
{
res += numbers[i];
}
else
{
res -= numbers[i];
}
}
res = res * 4.0 + 3.0;
printf("%lf\n", res);
return 0;
}Code language: PHP (php)
练习 3:二维数组计算并输出
#include <stdio.h>
int main(void)
{
double data[11][5];
/* 初始化数组 */
int row = 0;
for(double d = 2.0; d <= 3.0; d += 0.1)
{
data[row][0] = d;
data[row][1] = 1.0 / d;
data[row][2] = d * d;
data[row][3] = d * d * d;
data[row][4] = d * d * d * d;
row++;
}
/* 输出标题 */
printf("%-6s %-10s %-10s %-10s %-10s\n",
"x", "1/x", "x^2", "x^3", "x^4");
/* 输出每一行 */
for(int i = 0; i < 11; i++)
{
printf("%-6.1f %-10.4f %-10.4f %-10.4f %-10.4f\n",
data[i][0], data[i][1], data[i][2], data[i][3], data[i][4]);
}
return 0;
}Code language: PHP (php)
练习 4:计算多个班级学生的平均分
这个程序支持任意多个班级、任意多个学生。输入时先输入班级数,再依次输入每个班级的学生数,然后输入每个学生的成绩。程序会输出每个学生的平均分以及该班级的平均分。
#include <stdio.h>
int main(void)
{
int classCount = 0;
printf("请输入班级数量: ");
scanf("%d", &classCount);
for(int c = 0; c < classCount; c++)
{
int studentCount = 0;
printf("\n请输入第 %d 个班级的学生数量: ", c + 1);
scanf("%d", &studentCount);
double scores[studentCount];
double classSum = 0.0;
printf("请输入第 %d 个班级 %d 名学生的成绩:\n", c + 1, studentCount);
for(int s = 0; s < studentCount; s++)
{
printf(" 学生 %d: ", s + 1);
scanf("%lf", &scores[s]);
classSum += scores[s];
}
/* 输出该班每个学生的成绩和平均分 */
printf("\n第 %d 个班级学生成绩:\n", c + 1);
for(int s = 0; s < studentCount; s++)
{
printf(" 学生 %d 成绩: %.1f, 个人平均分: %.1f\n",
s + 1, scores[s], scores[s]);
}
/* 输出班级平均分 */
printf("第 %d 个班级的平均分: %.2f\n\n", c + 1, classSum / studentCount);
}
return 0;
}Code language: PHP (php)
说明
| 练习 | 要点 |
|---|---|
| 练习 1 | 一维数组存储原始值和倒数,注意 1.0/x 确保浮点除法 |
| 练习 2 | 数列公式 1/(i*(i+1)*(i+2)),交替加减后乘以4加3 |
| 练习 3 | 二维数组初始化,列标题对齐输出,步长 0.1 |
| 练习 4 | 变长数组(VLA),嵌套循环处理多班级多学生,分别计算个人和班级平均分 |
Previous: 井字游戏(Tic-Tac-Toe)
Next: 字符串