发布网友 发布时间:2022-04-22 00:10
共4个回答
热心网友 时间:2023-07-10 23:27
这个问题主要解决四个点:
1、如何输入20个整数;
2、如何计算平均值;
3、如何判断一个整数是否为质数;
4、如何格式化输出各个质数;
对于第一个问题,可以使用scanf或者scanf_s函数来实现,具体使用方法参考:网页链接
参考代码如下(由于无法插入代码,这里为了保持良好格式,放图片,下同):
对于第二个问题,先求总和,再除以总数,求得平均数,代码如下:
对于第三个问题,要先知道什么是质数,参考:网页链接,代码如下:
对于最后一个问题,使用printf_s函数的格式化参数来控制格式输出,代码如下:
最后将代码合并如下(本来是合成一张图片的,但是图片太大百度压缩了,看不清,这里分别截取,自己敲一下吧):
最后是执行结果:
热心网友 时间:2023-07-10 23:27
#include "stdio.h"
#include <stdlib.h>
#define N 5
int prime(int n){//质数判断
int i;
if(n>2 && !(n&1) || n<2)
return 0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int a[N],i,k;
printf("Please enter %d positive integer(s)...\n",N);
for(k=i=0;i<N;i++){//输入数据
if(scanf("%d",a+i)==1 && a[i]>0)
k+=a[i];
else{//若输入小于0则重新输入
printf("Input error, redo: ");
i--;
fflush(stdin);
}
}
printf("\nThe AVERAGE is %g\nPrime Numbers are as follows:\n",k/20.0);//输出平均值
for(k=i=0;i<N;i++)//输入质数
if(prime(a[i]))
printf(++k%3 ? "%11d" : "%11d\n",a[i]);
if(k==0)
printf("No find prime Numbers...\n");
else if(k%3)
printf("\n");
return 0;
}
运行样例:
热心网友 时间:2023-07-10 23:28
#include <stdio.h>
#include <math.h>
int main() {
int a[20];
int sum = 0;
int count = 0;
printf("输入20个数: \n");
for (int i = 0; i < 20; i++) {
scanf("%d", &a[i]);
}
for (int i = 0; i < 20; i++) {
sum = sum + a[i];
}
for (int j = 0; j < 20; j++) {
if (a[j] >= 2) {
for (int k = 2; k <= sqrt(a[j]); k++) {
if (a[j] % k == 0) {
break;
}
printf("%5d", a[j]);
count++;
if (count % 3 == 0) {
printf("\n");
}
break;
}
}
}
printf("\n平均值为: %lf\n", (double)sum/20);
return 0;
}
热心网友 时间:2023-07-10 23:28
for循环加上一个质数判断函数