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));
}