编写C语言程序找出前100个素数,并按要求格式输出,同时计算它们的平均值,代码如下:
#include <stdio.h>
#include <math.h>
int main() {
int i, j, count = 0, sum = 0;
double average;
int isPrime;
for(i = 2; count < 100; i++) { // i从2开始,count用于计数找到的素数数量
isPrime = 1; // 假设i是素数
for(j = 2; j <= sqrt(i); j++) {
if(i % j == 0) {
isPrime = 0; // 如果找到因数,则i不是素数
break;
}
}
if(isPrime) {
sum += i; // 累加素数求和
count++; // 已找到的素数数量增加
printf("%5d", i); // 打印素数,占5个字符宽度
if((count - 1) % 10 == 0) {
printf("\n"); // 每打印10个素数换行
}
}
}
average = (double)sum / count; // 计算平均值
printf("\n平均值:%f\n", average);
return 0;
}
这段代码从2开始检查每个整数是否为素数。每当找到一个素数时,会将其加到总和中,并增加素数的计数。当找到了前100个素数时,会停止查找。
素数会被打印出来,每个数字占5个字符宽度,每行打印10个数字。在打印完成后,计算并输出这些素数的平均值。
请注意,为了确保数字能够正确对齐,使用了格式化打印语句%5d
。此外,average
被定义为double
类型以确保平均值的计算结果准确。