题目:C语言 必须用指针方法编程 输入一个一维实型数组,输出其中最大值、最小值和平均值。
编程如下:
main()
{int a[10],i,n=0,*pa=a,sum=0,max,min;
for(i=0;i<10;i++)
{scanf("%d",pa);
if((*pa)=='\n') break; /*问题在这,这段不起作用,我想用回车作结束标记,程序错在这里是吗?为什么错了?要怎么改?*/
sum+=*pa;
n++;
pa++;
};
max=*pa;
min=*--pa;
pa=&a[0];
for(i=0;i<10;i++)
{if(max<*pa) max=*pa;
if(min>*pa) min=*pa;
pa++;};
printf("n=%d\n",n);
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("sum=%d\n",sum/n);
}
这个程序必须输入10个数,与题目要求不符。
要怎么做,说的详细些,先谢了。
2楼 用什么来判断呢?我问题就是这个:用什么语句来实现用“回车键”做为结束标记,而不是输入完整的10个字符让它自动结束。
办不到吗,那除字符型以后都不能用"\n"用判断的话。呜~~,还是想问如何让“整型”数组用"\n"来作结束标记。
3楼 我的字符是英文的,只是复制到网页上后输入中文备注时不小心改动了一下。至于分号的话,那个好像加不加问题不大哈。
被采纳答案的补充:
你把for()改成这样试下吧:
for(i=0;i<10;i++)
{
scanf("%f",pa);
sum += *pa;
n++;
pa++;
if(getchar() == '\n') break;
} //这里不用加分号了
1 å建æ°ç»ï¼
2 è¾å ¥æ°ç»å个å ç´ å¼ï¼
3 éåï¼æ±æ大ï¼æå°ï¼åå¹³åå¼ï¼
4 è¾åºç»æã
为æé«æçï¼å ¶ä¸2,3两æ¥å¯å¨åä¸ä¸ªå¾ªç¯ä¸å®æã
代ç å¦ä¸ï¼
int main()