#include<Stdio.h> int a[100],n;char c='y'; main() {void sort(int a[],int n); void sum(int a[],int n); void max(int a[],int n); int i,j; printf("\nthe number total n="); scanf("%d",&n); printf("please input the %d numbers:\n",n); for(i=1;i<=n;i++) scanf("%d",&a[i]); printf(" the data prosess system\n"); printf("1:find the max:\n"); printf("2:sort:\n"); printf("3:sum:\n"); while(c=='y') { while(1) {printf("please choose :"); scanf("%d",&j); if(j>=1&&j<=3) break; else printf("input error!\n"); } switch(j) {case 1: max(a,n); break; case 2: sort(a,n); break; case 3: sum(a,n); } printf("do you want continue(y/n?):"); c=getchar(); /*这里还能理解,但如果没有下面的三个,就不能continue*/ } } void max(int a[100],int n) {int i,t;t=a[0]; for(i=1;i<=n;i++) if(t<a[i]) t=a[i]; printf("the max=%d\n",t); c=getchar(); /*这里就不懂了,还有下面的两个*/ } void sort(int a[],int n) {int i,j,t; for(i=1;i<n;i++) for(j=i+1;j<=n;j++) if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} for(i=1;i<=n;i++) {if(i%8==0) printf("\n"); printf("%8d",a[i]); } printf("\n"); c=getchar(); /*这 } void sum(int a[],int n) {int i,s=0; for(i=1;i<=n;i++) s=s+a[i]; printf("the sum=%d\n",s); c=getchar(); /*这
}
上面那个程序我调试了半天,好不容易调度出来了,但有几个地方不明白:
为什么每个函数的后面要加一个:c=getchar();
才能接收到字符啊,还有就是上面的主函数还要有一个c=getchar();
否则不能:continue;
谁能帮我解释一下啊,谢谢。
[此贴子已经被作者于2004-07-02 11:05:04编辑过]