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

1、下面程序段可实现求10!
int s=1,i=1;
for(;i<=10;)
s*=i; i++;

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

4、下面程序的功能是求一个4x4数组的两条对角线上所有元素之和。
#include<stdio.h>
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、9、以下程序段能正确的给数组a输入数据。
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",a[i]);

第1个回答  推荐于2016-06-21
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和4的可以x+i、可以a+i
是什么意思啊

追答

数组名代表第一个元素的地址,加一个整数表示指针往后移多少个元素。

本回答被提问者采纳
第2个回答  2015-01-14

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<stdio.h>
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

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网