求调试这个正常运行。 语法没错,EXE停止运行
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#define N 3
int m=0,n;
void input();
void search1();
void sort();
void load();
void f();
void save();
void search2();
void search3();
struct worker
{
char number[12];/*工号*/
char name[30];/*名字*/
int counts;/*数量*/
int grade;/*名次*/
}w[10];
/*******************
定义***************/
void main()
{
struct worker ;
int select;
while (1)
{
printf("\n职工工作量统计系统\n");
printf("1.职工基本信息输入\n");
printf("2.按职工工号查询\n");
printf("3.按工作量排序\n");
printf("4.按职工工号进行信息删除\n");
printf("5.职工工作量的累加\n");
printf("6.职工信息输出\n");
printf("7.按职工姓名查询\n");
printf("8.按职工工作量查询\n");
printf("0.结束进程\n");
printf("\n请输入选择的程序:\n");
scanf("%d",&select);
switch(select)
{
case 1: input();break;
case 2: search1();break;
case 3: sort();break;
case 4: load();break;
case 5: f();break;
case 6: save();break;
case 7: search2();break;
case 8: search3();break;
}
}
}
void input( struct worker w[10])
{
int i,n;
printf("请输入要输入信息的数量: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入工号: ");
scanf("%s",&w[i].number);
printf("请输入名字: ");
scanf("%s",&w[i].name);
printf("请输入工作量: ");
scanf("%d",&w[i].counts);
printf("保存成功!\n");
}
}
void search1(struct worker w[N])
{
int i;
char a[20];
printf("请输入工号: ");
scanf("%s",&a);
for(i=0;i<N;i++)
if(strcmp(a,w[i].number)==0)
{
printf("%s,%s,%d\n",w[i].number,w[i].name,w[i].counts);
break;
}
if(i>=N)
printf("not find\n");
}
void sort(struct worker w[10])
{
int i=0,j=0,k=0;
struct worker s;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<=N;j++)
{
if(w[j].counts>w[k].counts)
k=j;
/* 交换 w[i] and w[k] */
}
s = w[k];
w[k] =w[i];
w[i] = s;
}
if(N>0)
w[0].grade =1;
for(i=0;i<N;i++)
{ w[i].grade=i+1;
printf("%d.%s,%s,%d\n",w[i].grade,w[i].number,w[i].name,w[i].counts);}
}
void load(struct worker w[10])
{
char choice;
int i,t;
char a[20];
printf("请输入要删除的工号:\n");
scanf("%s",&a);
for(i=0;i<N;i++)
{
if(strcmp(a,w[i].number)==0)
{
t=i;
printf("是否要删除该信息?(Y/N)");
scanf("%s",&choice);
if(choice=='Y')
{
for(i=t;i<=N;i++)
{
w[i]=w[i+1];
}
printf("删除成功!\n");
}
else
printf("删除失败!");
}
}
}
void f(struct worker w[10])
{
int i,sum;
char a[20];
printf("请输入要累加工作量的工号: ");
scanf("%s",a);
for(i=0;i<N;i++)
if(strcmp(a,w[i].number)==0)
{
printf("请输入要累加的工作量: ");
scanf("%d",&sum);
w[i].counts=sum+w[i].counts;
}
}
void save(struct worker w[10])
{
int i;
for(i=1;i<=N;i++)
{
printf("%s,%s,%d\n",w[i].number,w[i].name,w[i].counts);
}
printf("\n");
}
void search2(struct worker w[N])
{
int i;
char a[20];
printf("请输入姓名: ");
scanf("%s",&a);
for(i=0;i<N;i++)
if(strcmp(a,w[i].name)==0)
{
printf("%s,%s,%d\n",w[i].number,w[i].name,w[i].counts);
break;
}
if(i>=N)
printf("not find\n");
}
void search3(struct worker w[N])
{
int i;
int a;
printf("请输入工作量: ");
scanf("%d",&a);
for(i=0;i<N;i++)
{
if(a==w[i].counts)
{
printf("%s,%s,%d\n",w[i].number,w[i].name,w[i].counts);
}
if(i>=N)
printf("not find\n");
}
}