求助 我的输出模块到底为什么不行啊
#include "stdio.h"#include "stdlib.h"
#include"conio.h"
void mainmenu();
void put();
void xs();
void zuida();
void pl();
int a[100][100],f=0,d=0,e=0;
void main()
{
char c;
clrscr();
mainmenu();
printf("请输入您要执行的序号:\n");
c=getchar();
clrscr();
while(c!='0')
{
switch(c)
{
case'1':put(a);f=1;d=1; textcolor(YELLOW);cprintf("按回车返回主界面\n");
break;
case'2':if(f)
xs(a);
else
{clrscr();
printf("输入错误请重新输入(1-4):\n");
}
textcolor(YELLOW);cprintf("按回车返回主界面\n");
getch();
break;
case'3':if(f)
zuida(a);
else
{clrscr();
printf("输入错误请重新输入(1-4):\n");
}
textcolor(YELLOW);
cprintf("按回车返回主界面\n"); getch();
break;
case'4':if(f)
pl(a);
else
{clrscr();
printf("输入错误请重新输入(1-4):\n");
}
textcolor(YELLOW);cprintf("按回车返回主界面\n"); getch();
break;
case '0':printf("exit!");break;
default: printf("输入错误请重新输入(1-4):\n");textcolor(YELLOW);
cprintf("按回车返回主界面\n");break;
}
clrscr();
mainmenu();
printf("请输入您要执行的序号:\n");
c=getchar();
clrscr();
}
}
void mainmenu()
{
textcolor(YELLOW);
cprintf(" ☆☆☆☆☆☆☆☆员工计件系统☆☆☆☆☆☆☆☆\n");
printf("\n");
textcolor(GREEN);
cprintf(" 1.输入员工每天制作的数量\n");
printf("\n");
textcolor(GREEN);
cprintf(" 2.显示员工每天制作的数量\n");
printf("\n");
textcolor(GREEN);
cprintf(" 3.最多员工的序号和产品数量\n");
printf("\n");
textcolor(GREEN);
cprintf(" 4.对本周员工制作的产品数量按从多到少的顺序进行排列\n");
printf("\n");
textcolor(RED);
cprintf(" 0.★★★退出本程序★★★\n");
printf("\n");
textcolor(CYAN);
cprintf("版权所有翻版必究 \n");
printf("\n");
}
int z;
void put(int a[100][5])
{int i,j;
printf("输入您要输入员工的总数");
scanf("%d",&z);
printf("输入员工每天制作的数量\n");
for(i=0;i<z;i++)
{ printf("(%d)号员工\n",i+1);
for(j=0;j<5;j++)
{printf("\t\t\t星期%d :",j+1);
scanf("%d",&a[i][j]);
}
}
clrscr();
}
void xs(int a[100][5])
{int i,j;
printf("|员工序号| 星期一| 星期二| 星期三| 星期四| 星期五|\n");
printf("------------------------------------------------------------\n");
for(i=0;i<z;i++)
{printf("%4d",i+1);
for(j=0;j<5;j++)
printf("%10d",a[i][j]);
printf("\n");
printf("------------------------------------------------------------\n");
}
}
void zuida(int a[100][5])
{
int c[100]={0,0,0,0,0,0};
int i, j, k;
for(i=0;i<z;i++)
for(j=0;j<5;j++)
c[i]=c[i]+a[i][j];
k=0;
for(j=1; j<z; j++)
if(c[k]<c[j])
k=j;
printf("最多员工的序号: \n");
printf("序号 一周的产量\n");
printf("(%d) %d",k+1,c[k]);
printf("\n");
}
void pl(int a[100][5])
{
int temp1,temp2,i,j,min;
int c[5];
int d[100];
for(i=0;i<z;i++)
for(j=0;j<5;j++)
c[i]=c[i]+a[i][j];
for(i=0; i<z; i++)
{
min = i;
for(j=i; j<z; j++)
if(c[min]>c[j]) min = j;
temp1 = c[i];
c[i] = c[min];
c[min] = temp1;
temp2 = d[i];
d[i] = d[min];
d[min] = temp2;
}
printf("\n结果: \n");
printf("序号 一周产量\n");
for(i=5; i>=0; i--)
printf("(%d)-----------%d\n", d[i],c[i]);
}
刚开始 题目是要求编写 6个员工的题目的 后来老师看我做的快就叫我改成 可以输入任意员工的数量 于是我就定义了个Z 全局变量
2.显示员工每天制作的数量3.最多员工的序号和产品数量 都修改 成功了
就是第4.对本周员工制作的产品数量按从多到少的顺序进行排列 不知道为什么不行
请指教.