Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我看不出这个简单程序的逻辑问题_C - Fatal编程技术网

Can';我看不出这个简单程序的逻辑问题

Can';我看不出这个简单程序的逻辑问题,c,C,我写了这个程序,它应该读取数字,计算中间值,并打印最接近的数字 #include<stdio.h> int main(){ const int num = 6; int i, i2 = num - 1; float numeros[num], dist[num]; float media = 0; for (i = num - 1; i >= 0; i--){ printf("Digite um numero\n");

我写了这个程序,它应该读取数字,计算中间值,并打印最接近的数字

#include<stdio.h>
int main(){
    const int num = 6;

    int i, i2 = num - 1;
    float numeros[num], dist[num];
    float media = 0;

    for (i = num - 1; i >= 0; i--){
        printf("Digite um numero\n");
        scanf("%f", &numeros[i]);
        media = media + numeros[i];
    }
    media = media / num;
    for (i = num - 1; i >= 0; i--){
        if (numeros[i] <= media){
            dist[i] = media - numeros[i];
        }
        else{
            dist[i] = numeros[i] - media;
        }
    }
    for (i = num - 2; i >= 0; i--){
        if (dist[i] < dist[i + 1]){
        i2 = i;
        }
    }
    printf("O numero mais proximo da media '%1.0f' eh '%1.0f'", media, numeros[i2]);

    printf("\n\nPressione 'Enter' para sair");
    fflush(stdin);
    getchar();
return 0;
}
#包括
int main(){
常量int num=6;
inti,i2=num-1;
浮点数[num],距离[num];
浮动介质=0;
对于(i=num-1;i>=0;i--){
printf(“数字”;
scanf(“%f”、&numeros[i]);
媒体=媒体+数字[i];
}
媒体=媒体/数量;
对于(i=num-1;i>=0;i--){
如果(numeros[i]=0;i--){
if(dist[i]
但有时我会有这样的感觉

输入50 500 24 20(正常)

媒体116(ok)

打印24(?)

  • Int main()
    应该是
    Int main(void)
  • 不要使用
    fflush(stdin)
    ,这是未定义的行为
  • 条件
    dist[i]
    是错误的。它应该是
    dist[i]
    ,因为最佳元素的索引应该存储在
    i2
    中,并且该元素应该与其他元素进行比较

fflush(stdin);
是未定义的行为。您没有检查来自
scanf()
Int main()
的返回值应该是
Int main(void)
甚至不会编译。什么是
Int
?@DaviRibeiro使用终端软件(例如windows上的“命令提示符”)查看结果。