C语言,菜单程序,参数传递问题,该怎么改啊啊啊,求解,谢谢!
程序代码:
#include<stdio.h> #include<stdlib.h> #define N 100 //输出数组,并输出元素个数 int shuchu(int s[],int q) { int i,n; int j=0; n=sizeof(s); printf("输出数组:\n"); for(i=1;i<=n;i++) { printf("%4d",s[i-1]); j++; if (s[i]==-1) break; } printf("\n"); printf("数组元素个数为:%d\n",j); } //数组接收 int A(int s[],int e) { static int a[N]; int m,n,i; printf("请输入数组元素:\n"); for(n=0;n<=N;++n) { scanf("%d",&a[n]); if(a[n]==-1) break; } shuchu( a,m); return 0; } //删去数组中指定的值 int B(int s[],int f) { int de,mark,i,j,m; printf("请输入要删除的数据:\n"); scanf("%d",&de); int n; n=sizeof(s); printf("数组的长度为:%d",n); for(i=0;i<=n-1;i++) { if(de==s[i]) mark=i; } for(i=mark;i<=n-2;i++) { s[i]=s[i+1]; } printf("\n"); shuchu(s,m); return 0; } //从小到大排序 int C(int s[],int g) { int i,j,temp,m; for(i=0;i<10;i++) { for(j=0;j<10-i-1;j++) { if(s[j]>s[j+1]) { temp=s[j]; s[j]=s[j+1]; s[j+1]=temp; } } } shuchu(s,m); return 0; } //插入一个值 int D(int s[],int h) { int x,k,m; printf("请输入需要插入的数:\n"); scanf("%d",&x); int j=0; while(s[j]<=x)j++; for(k=10;k>=j;k--)//比x大的元素后移 { s[k+1]=s[k]; } s[j]=x; shuchu(s,m); return 0; } //求平均值 int E(int s[],int t) { int i,j,num,sum; shuchu(s,num); for(j=0;j<=num;j++) { sum=s[i]+s[i+1]; } printf("该数组的平均数为:\n"); printf("%d",sum/num); } //主函数 int main() { int m,x; static int s[N]; printf("菜单:\n**1.输出一组数\n**2.删除x\n**3.从小到大顺序输出\n**4.插入一个数\n**5.求平均值\n**6.结束\n"); for(;;) { printf("请输入您想使用的功能序号:\n"); scanf("%d",&m); if(m==1) A(s,m); if(m==2) B(s,m); if(m==3) C(s,m); if(m==4) D(s,m); if(m==5) E(s,m); } return 0; }