(急)C语言问题..

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:24:59
以下程序找出数组中最大的元素及其下标,数组元素的值有键盘输入,请选择正确的答案。

#include <stdio.h>
mian()
{int a[10], *p, *s , i ;
for(i=0; i<10; i++)
scanf(“%d”, ( 1 ) );
for(p=a,s=a; ( 2 ) <10; p++)
if (*p > *s) s= ( 3 );
printf(“Max =%d, index=%d\n”, ( 4 ) , ( 5 ) );
}
(1) A) *(a + i) B) p+ i. C) a+ i. D) a [ i ]
(2) A) p -- a B) s – a C) a-p D) a-s
(3) A) p .B) a[ p ] .C) a[ s ] .D) a-p
(4) A) a[ p–a]. B) a[p]. C) *s . D) a[ s ]
(5) A) p-a . B) p. C) s-a .D) a-s

答案

main()
{int a[10],*p,*s,i;
for(i=0;i<10;i++)
scanf("%d",a+i);
for(p=a,s=a;p-a<10;p++)
if(*p>*s)
s=p;
printf("%d,%d",*s,s-a);
}

上面的答案是我在网上找到的..但是用TC输入数字检查的结果不对啊...

求哪位高人来指点一下吧...

程序完全正确,可能是因为你输入的数过大了,才会出现一些问题
int类型的取值范围是-32768~32767,换成是其他类型就可以了,如下,换成了long类型.
main()
{
long a[10],*p,*s,i;
for(i=0;i<10;i++)
scanf("%ld",a+i);
for(p=a,s=a;p-a<10;p++)
if(*p>*s)
s=p;
printf("%ld,%ld",*s,s-a);
}

C语言的考试语言我觉得是最恶心的了

换个编译器试试

程序没错
提醒一下:你是不是忘了数组的下标由0开始

我运行了你的程序没问题啊....

fgds