A-A+
下面程序的功能是输出数组中最大的数 由a指针指向该元素。请填空。 main() { int
问题详情
下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。 main() { int s[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b; for(【 】) if(*a<*b) a=b; printf("%d",*a); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++
题目要求输出数组中最大的数,所以要遍历整个数组,而指针a用来指向最大数,所以循环变量只有使用指针b。for初始化时,应该先让a指向第1个数,然后让b指向第2个数,故循环初始化语句应该为a=s,b=s+1或其他等价表达式。因为要使b遍历整个数组,故循环条件应该为b-s<sizeof(s)/sizeof(s[0])或其他等价表达式。最后每次循环应该让b往后移动一位,故for的第3条语句应该是++b、b++或其他等价形势。所以本题应填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等价语句。