gpt4 book ai didi

c - 能被 3 整除的数的算术平均值

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

我知道这不是最好的代码,我不打算改进它 - 只是为了理解它。

我不确定 s=i=k=0 表达式和整数 k,当然还有 if (k) s/=k;完全可疑。

谢谢。

main()
{
int a[100], i,k,n;
double s;
while (1)
{
printf ("Enter the number of elements:");
scanf ("%d", &n);



if (n<0 || n>100) break;

for (i=0; i<n; i++)
{
printf("a[%d]:", i);
scanf("%d", &a[i]);

}

for (s=i=k=0; i<n; i++)
if (a[i]%3 == 0)
{
s+=a[i];
k++;
}

if (k) s/=k;
printf("s=%.2f\n", s);
}

最佳答案

s=i=k=0

相同
s = 0;
i = 0;
k = 0;

请记住,一行中的多个赋值是从右到左完成的

s=(i=(k=0))

k = 0 // first
i = k // second
s = i // third

! double 变量应使用 0.0 而不是 0 进行初始化。


s /= k;

相同
s = s / k;

你可以用很多运算符来完成这个缩短,比如 *,+,-,%,&,|,...


if ( k ) equals if ( k!=0 )

if ( !k ) equals if ( k==0 )

But its better to use (k) and (!k) just for boolean variables for better reading / understandong of code.


arithmetic mean of numbers divisible by 3

if (a[i]%3 == 0)
{
s+=a[i];
k++;
}

检查变量 a[i] 是否是三的倍数。如果是,则执行条件体。

关于c - 能被 3 整除的数的算术平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651864/

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