gpt4 book ai didi

c - 在查找 2 个数字列表的平均值时,添加 for 循环会扰乱我的计算。有人有好的解决办法吗?

转载 作者:行者123 更新时间:2023-11-30 19:40:16 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (void) {
int n, i, input_cases,x;
float num[100], sum[2] = {0.0}, average[2] = {0.0};

//scanf("%d", &input_cases);
//for (x=0; x<input_cases; x++){

printf("Enter the total amount of numbers: ");
if (scanf("%d", &n) != 1) { /* validate your input */
fprintf (stderr, "error: invalid input.\n");
return 1;
}

for (i = 0; i < n; i++) {
if (scanf("%f", &num[i]) != 1) { /* validate input */
fprintf (stderr, "error: invalid input.\n");
return 1;
}
}

/* sum/average 1st-half */
for (i = 0; i < n/2; ++i)
sum[0] += num[i];
average[0] = sum[0] * 2 / n;

/* sum/average 2nd-half */
for (i = n/2; i < n; ++i)
sum[1] += num[i];
average[1] = sum[1] * 2 / n;
if (average[0]>average[1]){
printf("%.6lf\n", average[0]);
}
else{
printf("%.6lf\n", average[1]);}

//}
return 0;
}

所以这段代码的作用是读取一个数字列表,将该列表分成两半,找到两个拆分列表的平均值,然后告诉您两个列表中的最高平均值。例如:

Input: 
Enter the total amount of numbers: 10
10
8
9
15
12
2
3
8
7
11

输出:

10.800000

我想做的是多次执行此操作。假设我想用两个不同的列表来做到这一点。我的程序应该给出 2 个不同列表中 2 个最高平均值。我添加了一个 for 循环来尝试实现这一点,但在循环之间的某个地方,我的第二个数字列表的最高平均值被搞乱了,我似乎不知道在哪里。我已经注释掉了我的 for 循环,以向大家展示在没有循环的情况下执行它的效果非常好。只有当我添加 for 循环时,我的计算才会变得困惑。使用 for 循环,显示如下:

输入:

2  
Enter the total amount of numbers: 10
10
8
9
15
12
2
3
8
7
11
10.800000(This is the result)
Enter the total amount of numbers: 4
3
3
2
1
30.000000 (This should be 3.000000)

我想要它显示什么:

Input:  
2
Enter the total amount of numbers: 10
10
8
9
15
12
2
3
8
7
11
Enter the total amount of numbers: 4
3
3
2
1

Output:
10.800000
3.000000

最佳答案

我只是将变量声明移到主 for 循环下方。

关于c - 在查找 2 个数字列表的平均值时,添加 for 循环会扰乱我的计算。有人有好的解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529416/

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