C语言明天考试,几题很简单的判断并改错!!!!求解释!!!!

2024-11-07 01:39:45
推荐回答(2个)
回答(1):

1、 {s*=i; i++;},漏了花括号,不会执行i++;死循环。
2、do {scanf("%d", &x[i]);i++;},scanf()参数要取地址,可以x+i。
3、if(i==j||i+j==3)s+=a[i][j]; 应该i+j== 3,不是赋值。
4、scanf("%d",&a[i]);,scanf()参数要取地址,可以a+i。

回答(2):

1, 缺少括号

int s=1,i=1;
for(;i<=10;) {
  s*=i; i++;
}

2. 少了取地址 &x[i] 或写成 x+i

2、以下程序段可给数组x的所有元素输入数据。
int x[10], i=0;
do {scanf("%d", &x[i]);i++;}
while(i<10);

4. 关系运算 == 写成了赋值 = ( i+j == 3 )

#include
main()
{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
  int i,j,s=0;
  for(i=0;i<4;i++)
      for(j=0;j<4;j++)
         if(i==j||i+j==3)s+=a[i][j];
  printf("%d",s);
}

5. 同2