首先,抱歉我的语言不好。我自己在使用VC ++ Express。
现在我正在研究安排。这本书给了我一个这样的项目:
这是我的回答计划:
int main(void)
{
int arr[5][5];
int i,j;
while(1)
{
printf("student: 1.Jim,2.Jombi,3.Joly,4.Moran if you done, type 0\n");
scanf("%d", &i);
if(i=0)
break;
printf("subject: 1.english,2.spanish,3.poolish,4.flash\n");
scanf("%d", &j);
printf("insult score!\n");
scanf("%d", arr[i-1][j-1]);//insulting score
}
for(i=0;i<4;i++)//initialization of sum parts
{
arr[i][4]=0;
arr[4][i]=0;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
arr[4][i]+=arr[j][i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
arr[i][4]+=arr[i][j];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%d ",arr[i][j]);//printing result
printf("\n");
}
return 0;
}
我完全不知道为什么这段代码不起作用。即使我只尝试“同时”部分,它也不起作用。这是为什么?
答案 0 :(得分:2)
如前所述,您有if
错误
if (i == 0)
/* ^^^ */
你也有scanf
错误
scanf("%d", &arr[i-1][j-1]);
/* ^^^ */
你真的,真的,真的 shoud用一些东西(可能是零)初始化数组
int arr[5][5] = {0};
答案 1 :(得分:1)
if(i=0)
我不知道这是否是您问题的根源,但这应该是:
if(i==0)
答案 2 :(得分:0)
上次for
循环中的索引是一次性的。应为4
,您使用5
。
答案 3 :(得分:0)
有几点:
&
调用中错过了scanf()
(地址)运算符,因此您将在数组中传递整数。memset(arr, 0, sizeof arr);
以确保数组是清空的,而不是嵌套的for
来仅将总和归零。更安全,更短,更容易理解。