错误的数据类型冲突

时间:2017-04-09 14:16:19

标签: c types

#tab

}

我试图找到5个输入之间的最大和最小的总和问题是我使得长整数数组与变量相同而且我有错误数据类型的错误在哪一个数组是什么问题是什么?

1 个答案:

答案 0 :(得分:1)

什么是a
它是第2行的长整数吗? long int a;
或者它是第12行long int a [5] = {a,b,c,d,e};

中的long int数组

编译器在看到第12行时会感到困惑,假设你再次做同样的事情(它可能会容忍),然后看到你使用的是另一种类型(数组而不是long int)。
他的结论是“那些类型不同。这是一种类型的冲突。”

解决方案:
在所引用的任何地方将a-the-array重命名为“liArray”。 Et voila:gcc -Wall Toy.c不会抱怨并且运行它不会崩溃。

之后阅读评论,他们还有更多关于如何让程序真正做到它应该做的事情。下面我只做了数组重命名。

#include <stdio.h>  

int main()  
{  
    long int a;  
    long int b;  
    long int c;  
    long int d;  
    long int e;  
    scanf("%ld %ld %ld %ld %ld",&a,&b,&c,&d,&e);  
    int i,j;  
    long int sum = 0;  
    long int largestsum =0;  
    long int smallestsum = 0 ;  
    long int  liArray[5] = {a,b,c,d,e};  
    for ( i =0;i<5;i++){  
        for (j = 0;j<5;j++){  
            if (liArray[j]!=liArray[i]){  
                sum+=liArray[j];         
            }  
        }  
        if (largestsum <sum){  
            largestsum = sum;  
        }  
        if (smallestsum>sum){  
            smallestsum = sum;  
        }  
    }  
    printf("%ld %ld",largestsum,smallestsum);  
    return 0;  
}