gpt4 book ai didi

c - 数组中质数的平均值

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:29 24 4
gpt4 key购买 nike

嗯,问题就出在上面。总而言之,它可以编译,但我想我的主要想法是错误的。我试图用该代码做的是:

  • 我希望此人向我们提供数组的元素,他想要多少(最多 100 个元素)。
  • 之后,我会检查哪些数组位置是质数。(例如:位置 2、3、5 等。不是元素本身)。
  • 之后,我计算素数位置的平均值。

就是这样。有任何想法吗?请记住,我处于工程的第一阶段,所以我不是最擅长编程的。

代码如下:

#include <stdio.h>
#include <windows.h>
int main(void)
{
int k, i, j, d, v[101], sum, prim, f;
float ave;

i = 0;

while ((i < 101) && (j != 0) )
{
i++;
printf("Set the value of the element %d => ", i);
scanf("%d", &v[i]);
printf("To stop press 0 => ");
scanf("%d", &j);
}
k = 0;
prim = 1;
f = i;
sum = 0;
while (f > 2)
{
if (i % (f - 1) == 0)
{
prim = 0;
}
else
{
k++;
sum = sum + v[f];
}
f = f - 1;
}

med = sum / k;
printf("%d, %d, %d", k, soma, i);
printf("The average is => %f \n", ave);
system("pause");
}

对于那些想知道的人,这是我在正确答案中编辑后得到的:

int main(void)
{
int v[101];
int n = 0;
int k,j = 0;
int i=0;
int sum = 0;

while( i<100 )
{
i++;
printf ("Set the value of the element %d => ", i);
scanf ("%d", &v[i]);
int x,primo=1;
if (i>1){
for (x=2; x*x<=i; x++) {
if (i % x == 0) primo = 0;
}
if(primo==1)
{
sum = sum+ v[i];
n++;
}
}
printf ("To stop press 0 => ");
scanf ("%d", &j);
if(j == 0)
break;
}

float ave =(sum /n);
printf("%d, %d, %d", n,i,sum);
printf("The average is => %f \n", ave);
system("pause");
}

最佳答案

首先让我们创建一个可读的方法来测试一个数是否为质数; this answer来自另一个 SO 帖子给了我们一个很好的:

int IsPrime(int number) {
int i;
for (i=2; i*i<=number; i++) {
if (number % i == 0) return 0;
}
return 1;
}

其次,让我们清理您的代码,并计算到目前为止遇到的所有素数的运行总和。此外,我们将检查 scanf 的返回值(但我们应该 avoid scanf !)

第三,我们添加一些缩进。

int main(void)
{

int n = 0;
int i = 0;
int j = 0;
int k = 0;
int sum = 0;

while( i<101 )
{
i++;
printf ("Set the value of the element %d => ", i);
if(scanf ("%d", &k) != 1)
continue;

if(is_prime(k))
{
sum += k;
++n;
}

printf ("To stop press 0 => ");
if(scanf ("%d", &j) == 1)
if(j == 0)
break;
}

float ave = sum / (double) n;
printf("The average is => %f \n", ave);
system("pause");
}

关于c - 数组中质数的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com