Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.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
数据类型冲突时出错 intmain(){ 长INTA; 长int b; 长INTC; 长整数d; 长内特; scanf(“%lld%lld%lld%lld%lld”、&a、b、c、d和e); int i,j; 长整数和=0; long int largestsum=0; long int smallestsum=0; 长整数a[5]={a,b,c,d,e}; 对于(i=0;i_C_Types - Fatal编程技术网

数据类型冲突时出错 intmain(){ 长INTA; 长int b; 长INTC; 长整数d; 长内特; scanf(“%lld%lld%lld%lld%lld”、&a、b、c、d和e); int i,j; 长整数和=0; long int largestsum=0; long int smallestsum=0; 长整数a[5]={a,b,c,d,e}; 对于(i=0;i

数据类型冲突时出错 intmain(){ 长INTA; 长int b; 长INTC; 长整数d; 长内特; scanf(“%lld%lld%lld%lld%lld”、&a、b、c、d和e); int i,j; 长整数和=0; long int largestsum=0; long int smallestsum=0; 长整数a[5]={a,b,c,d,e}; 对于(i=0;i,c,types,C,Types,什么是a? 它是第2行中的长整数吗?long int a; 或者它是一个长整数数组,如第12行长整数a[5]={a,b,c,d,e}; 当编译器看到第12行时会感到困惑,假设您再次执行相同的操作(它可能会容忍),然后看到您使用的是不同的类型(数组而不是长整型)。 他总结道:“这些类型不同,这是类型冲突。” 解决方案: 将数组重命名为“liArray”,无论引用到哪里。 Et voila:gcc-Wall-Toy.c不会抱怨,运行它也不会崩溃 在阅读了评论之后,他们有更多的话要说,如何让程序真正做

什么是
a

它是第2行中的长整数吗?
long int a;

或者它是一个长整数数组,如第12行
长整数a[5]={a,b,c,d,e};

当编译器看到第12行时会感到困惑,假设您再次执行相同的操作(它可能会容忍),然后看到您使用的是不同的类型(数组而不是长整型)。
他总结道:“这些类型不同,这是类型冲突。”

解决方案:
将数组重命名为“liArray”,无论引用到哪里。 Et voila:
gcc-Wall-Toy.c
不会抱怨,运行它也不会崩溃

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

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;
#包括
int main()
{  
长INTA;
长int b;
长INTC;
长整数d;
长内特;
扫描(“%ld%ld%ld%ld%ld”、&a、b、c、d和e);
int i,j;
长整数和=0;
long int largestsum=0;
long int smallestsum=0;
long-int-liArray[5]={a,b,c,d,e};

对于(i=0;i可能会使用更具描述性的变量名?
%lld
long
%ld
long
。最大和是什么?你是指最大和的连续子数组吗?发布的代码不会编译。有几个原因,包括调用时缺少必要的
\include
语句在调用任何
scanf()
函数族时,始终检查返回值(而不是参数值)以确保操作成功。(并修复格式说明符以匹配参数),即
if(5!=scanf(“%ld%ld%ld%ld%”,&a,&b,&c,&d,&E)){//handle error event}
发布的代码将
a
声明为
long int
。不久之后,发布的代码将
a
声明为数组。这会导致编译器发出
错误
消息。您为什么发布未干净编译的代码?您的问题是运行时问题,而不是编译问题,因此没有发布显示问题的代码。你是否希望我们对你的实际代码看起来像什么?我也改变了<代码> %LLD >代码> %LD ,但是这与问题无关。非常感谢大家,这是愚蠢的错误。听起来像这样实际上解决了你的问题。请考虑接受这个问题。问题;即设置“勾选”。
#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;  
}