C语言求助 程序不能运行 帮忙看下代码

#include<stdio.h>#include<stdlib.h>#define N 600struct MARKETING{ int seller; int production; int saleroom;}mar[N];void menu();void saveData(struct MARKETING s);void calSalleroom(int a[4][5]);void sortSeller(int a[4][5]);void sortProduction(int a[4][5]);
void main(){ int choose; int a[4][5]; struct MARKETING s; saveData(s); menu(); scanf("%d",&choose); if(choose<0||choose>2) { printf("Wrong!Please input again:"); scanf("%d",&choose); }loop:switch(choose) { case 1:calSalleroom(a);break; case 2:sortSeller(a);break; case 3:sortProduction(a);break; case 4:exit(0); } goto loop;}
/*函数定义*/void menu(){ printf(" *******************************************************\n"); printf(" 0.计算每个人每种产品的销售额\n"); printf(" 1.按销售额对销售员进行排序,输出排序结果\n"); printf(" 2.统计每种产品的总销售额,输出排序结果\n"); printf(" 3.退出/n"); printf(" *******************************************************\n");}

void saveData(struct MARKETING s){ int i,j; FILE * fp=NULL; for(i=1;i<=30;i++) { for(j=1;j<=20;j++) { scanf("%d %d %d",mar[j].seller,mar[j].production,mar[j].saleroom); fp=fopen("d:\\data","ab+"); if(fp==NULL) { printf("打开文件失败!"); exit(1); } fwrite(&s,sizeof(s),1,fp); fclose(fp); } }}

void calSalleroom(int a[4][5]){ int i,j; int m; FILE * fp=fopen("d:\\data","rb"); struct MARKETING s; if(fp==NULL) { printf("打开文件失败!"); exit(1); } fread(&s,sizeof(s),1,fp); fclose(fp); for(i=1;i<=4;i++) { for(j=1;j<=5;j++) { for(m=1;m<=600;m++) { if(mar[m].seller==i&&mar[m].production==j) { a[i][j]+=mar[m].saleroom; printf("每个人每种产品的销售额/n"); printf("%d %d %d/n",i,j,a[i][j]); } } } }}

void sortSeller(int a[4][5]){ int i,j; int k=1; int sum[4]; for(i=1;i<=4;i++) { for(j=1;j<=5;j++) { sum[i]+=a[i][j]; } } for(i=1;i<=4;i++) { for(j=1;j<=4;j++) { if(sum[k]<sum[j]) { k=j; } } printf("/t/t%d",j); }}

void sortProduction(int a[4][5]){ int i,j; int k=1; int sum[5]; for(i=1;i<=5;i++) { for(j=1;j<=600;j++) { if(mar[j].production==i) { sum[i]+=mar[j].saleroom; } } } for(i=1;i<=5;i++) { for(j=1;j<=5;j++) { if(sum[k]<sum[j]) { k=j; } } printf("/t/t%d",j); }}

形参上的二维数组可这样写a[][5],前面那个可以空着。
温馨提示:答案为网友推荐,仅供参考
相似回答