永发信息网

C语言新手请教关于求非素数的平均值问题

答案:2  悬赏:60  手机版
解决时间 2021-04-27 13:52
  • 提问者网友:椧運幽默
  • 2021-04-27 01:38
我是编程新手 有如下题不会做了,特请教各位高手~谢谢 辛苦了~!

从键盘上输入不超过50个整数,若输入0则输入立即结束。计算并显示这些整数中所有非素数数字的平均值。

(PS:谢谢大家了~如果时间允许的话 最好能在每行代码后面写上注释,我是个新手,我怕有的地方看不懂~十分感谢)
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-04-27 03:11

#include <stdio.h> //输入输出头文件
#include <math.h> //sqrt()


int isprime(int n) //判断素数,是素数就返回1.不是返回0
{
int i,k;
k=sqrt(n);
for(i = 2; i <= k; i++)
{
if(n % i == 0) break;
}
if(i > k) return 1;
return 0;
}


void main()
{
int t, n = 0, i= 1; //i作为输入控制,初始化为1.最多50个数.
float ave = 0; //平均值可能存在小数,所以用float存储.


while(scanf("%d", &t), t != 0) //循环获取输入,当输入不为0时继续循环.
{
if(++i >= 50) break; //如果输入50个数,就不在获取输入.

if(!isprime(t)) //判断输入的数是否素数. 不是的话就将该数累加到ave中.
{
ave = ave + t;
n++; //n作为非素数计数器.用于求平均值时使用.
}

}

ave = ave / n; //计算非素数的平均值.
printf("ave = %.1f\n",ave);
}

全部回答
  • 1楼网友:白昼之月
  • 2021-04-27 04:46

#include <stdio.h> //输入输出头文件 #include <math.h> //导入sqrt()函数

…………其他的和楼上的一样

这个垃圾问问,非要人多打些字,审核就是不通过,气死人呢

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯