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
C 如何使这段代码即使对于作为输入的大数字也能工作?_C_Algorithm_Data Structures - Fatal编程技术网

C 如何使这段代码即使对于作为输入的大数字也能工作?

C 如何使这段代码即使对于作为输入的大数字也能工作?,c,algorithm,data-structures,C,Algorithm,Data Structures,这个程序运行得很好,但当输入一个较大的数字时,我会出错。 这个问题的链接是 #包括 #包括 #定义最大值(a,b)((a)>(b))?(a):(b)) int main(){ int m,n,i,j,matrsum,matcsum; scanf(“%d%d”,&m,&n); int a[m][n],v1,v2,v3,v4; 对于(i=0;i,如果只处理有符号整数,则可以使用长整型而不是整型 长类型的大小至少为4字节(32位)。最小值为−2147483647,最大值至少为+2147483647 你

这个程序运行得很好,但当输入一个较大的数字时,我会出错。 这个问题的链接是

#包括
#包括
#定义最大值(a,b)((a)>(b))?(a):(b))
int main(){
int m,n,i,j,matrsum,matcsum;
scanf(“%d%d”,&m,&n);
int a[m][n],v1,v2,v3,v4;

对于(i=0;i,如果只处理有符号整数,则可以使用长整型而不是整型

长类型的大小至少为4字节(32位)。最小值为−2147483647,最大值至少为+2147483647


你可以在这里查看一篇非常有趣的帖子。

int
是一个有符号整数,在大多数平台上它是32位,这意味着它的范围大约为正负20亿。如果你只处理无符号数字,请使用
无符号
,你的范围从零到略大于40亿。对于更大的数字,t以下是
无符号长
,它保证至少64位宽,可以处理非常大的数字。问题中应该包含所有必要的信息。链接应该是补充的,而不是必需的。编辑问题以包括数组的大小、元素和和和的大小。
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) (((a)>(b))?(a):(b))
int main(){
    int m,n,i,j,matrsum,matcsum;
    scanf("%d %d",&m,&n);
    int a[m][n],v1,v2,v3,v4;
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            scanf("%d",&a[i][j]);
        }
    }
    scanf("%d %d %d %d",&v1,&v2,&v3,&v4);
     for(i=0;i<m;i++){
        int rsum=0,risum=0,rusum=0;
        for(j=0;j<n;j++){
            rsum=rsum+abs(a[i][j]);
            risum+=abs(a[i][j]+v1);
            rusum+=abs(v2);
        }
        matrsum+=MAX(rsum,MAX(risum,rusum));
    }
    for(i=0;i<n;i++){
        int csum=0,cisum=0,cusum=0;
        for(j=0;j<m;j++){
            csum=csum+abs(a[j][i]);
            cisum+=abs(a[j][i]+v3);
            cusum+=abs(v4);
        }
        matcsum+=MAX(csum,MAX(cisum,cusum));
    }
    printf("%d ",MAX(matrsum,matcsum));  
}