2012-09-16 42 views
1

以下是我在C输入的代码不正确的结果,其使用无符号长长整型

unsigned long long int Je=23; 
int col=2,row=2; 
void mod(unsigned long long int mat1[][col],unsigned long long int mat2[][col],int r) 
{ 
    int i,j; 
    for(i=0;i<r;i++) 
     for(j=0;j<col;j++) 
     { 
      mat1[i][j]=mat2[i][j]%Je; 
      printf("Value mat1=%u mat2=%u Je=%u\n",mat1[i][j],mat2[i][j],Je); 
     } 
} 

我调用此函数具有下列矩阵

t1[2][2]={1036,1090,1526,1472}; 
mod(t2,t1,row); 

但在控制台screen我得到以下结果,包含在函数定义中的“printf”语句

Value mat1=5 mat2=0 Je=1036 
Value mat1=2 mat2=0 Je=1090 
Value mat1=16 mat2=0 Je=1526 
Value mat1=9 mat2=0 Je=1472 

这些数值是如何打印的?我正在使用Dev Cpp编译器。

回答

1

printf语句中的格式说明符“%u”不正确。对于无符号long long,说明符应该是“%llu”

相关问题