gpt4 book ai didi

c - 数据类型冲突错误

转载 作者:行者123 更新时间:2023-11-30 14:58:29 25 4
gpt4 key购买 nike

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

}
}
if (largestsum <sum){
largestsum = sum;
}
if (smallestsum>sum){
smallestsum = sum;
}
}
printf("%ld %ld",largestsum,smallestsum);
return 0;

}

我试图找到 5 个输入之间的最大和最小和,问题是我将长整型数组设置为与变量相同,并且我在 a 中出现数据类型冲突的错误,其中 is the array 是什么问题?

最佳答案

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

编译器在看到第 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;
}

关于c - 数据类型冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307753/

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