gpt4 book ai didi

C基本无限循环MVS,计算与邻居的平均数

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

所以这应该是非常基本的,而且我几乎可以肯定我遗漏了一些东西,因为我设法编写了更复杂的代码......

代码应该取一个正整数,并写出每个数字与其邻居的平均数,用户给出的整数至少为 2 个整数。

所以如果用户给 a1 a2 a3 a4输出将是“(a1+a2)/2, (a1+a2+a3)/3,(a2+a3+a4)/3,(a3+a4)/2”但不限于4个数字,可以少也可以多。

问题是,当我只有 a1 a2 时,输出是 (a1 +a2)/2, (a1 + a2)/2代码应该知道是否有 a3 然后决定如何计算第二个?我确定我在这里遗漏了一些东西而且我不知道......除了基本的,我不应该使用任何东西,我已经写了一些计算 a1 和 a2 的东西,以防只有输入 (a1,a2)但这显然是错误的,因为代码不适用于 a1、a2、a3 等等...

我正在放置代码,尽管它离解决方案还很远,而且即使它所做的也没有完善:

 #include <stdio.h>
int main()
{
float num=0.0,num2=-1, nextnum=-1,nextnext=-1, after=0.0,after2=0.0;
do {
scanf("%f", &num);
if (num2==-1)
{
scanf("%f", &num2);

after=num+num2 ;

nextnum=num2;
printf("%4g" , (after/2) );
}


after=num+nextnum ;


nextnum=num;


printf("%4g" , (after/2));

}
while (num>0);
return 0;

}

我们很乐意接受任何形式的帮助/建议/指导。

最佳答案

首先,我建议您在每次迭代后写一个变量及其值表。我做了 3 次迭代,它只计算每 2 个数字的平均值。我不知道这是您的原始代码还是其中的一部分,因为您甚至没有使用 nextnextafter2 变量。但是要解决您原来的问题,您应该为您的 if 添加一个 else block ,并向 if 部分添加任何必要的说明。一个可能的解决方案是:

do {
scanf("%f", &num);
if (num2==-1)
{
scanf("%f", &num2);

after=num+num2 ;

nextnum=num;
nextnext = num2;
printf("%4g" , (after/2) );
}
else {

after=num+nextnum+nextnext ;

nextnext=nextnum;
nextnum=num;


printf("%4g" , (after/2));
}

}
while (num>0);

最后 3 个数字的平均值应该这样做,您可以在 while cicle 之后用 nextnumnextnext 添加最后 2 个数字的部分 至极应该包含在 cicle 之后的最后 2 个输入的数字。

关于C基本无限循环MVS,计算与邻居的平均数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430056/

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