qq_33390614 2015-12-15 13:28 采纳率: 0%
浏览 1383

给一段简单的编程加结构体

#include
#include

int i,j,x,tt,n=-1,f[100]={0};
float a1[100],a2[100],a3[100],a[100],t;
char num[100][5],cla[100][5],name[100][11],
x1[100]="yes",x2[100]="yes",x3[100]="yes",temp[100];

void menu();
void input();
void inputonce();
void delete();
void deleteonce();
void select();
void selectonce();
void order();
void swap(int,int);
void output();

int main()
{
menu();
return 0;
}

void menu()
{
printf("1.input\n");
printf("2.delete\n");
printf("3.select\n");
printf("4.order\n");
printf("5.output\n");
printf("6.quit\n");
printf("please input your option\n");
scanf("%d",&x); getchar();
switch(x)
{
case 1:input(); break;
case 2:delete(); break;
case 3:select(); break;
case 4:order(); break;
case 5:output(); menu(); break;
case 6:return;
}

}

void input()
{
while (strcmp(x1,"no")!=0) inputonce();
menu();
}

void inputonce()
{
n++;
printf("Id ");
gets(num[n]);
printf("class ");
gets(cla[n]);
printf("name ");
gets(name[n]);
printf("score1 ");
scanf("%f",&a1[n]); getchar();
printf("score2 ");
scanf("%f",&a2[n]); getchar();
printf("score3 ");
scanf("%f",&a3[n]); getchar();
a[n]=a1[n]+a2[n]+a3[n];
printf("continue?\n");
gets(x1);
}

void delete()
{
while (strcmp(x2,"no")!=0) deleteonce();
menu();

}

void deleteonce()
{
gets(temp);
for (i=0;i<=n;i++)
if ((strcmp(num[i],temp)==0)||(strcmp(name[i],temp)==0))
f[i]=1;
output();
printf("continue?\n");
gets(x2);
}

void select()
{
while (strcmp(x3,"no")!=0) selectonce();
menu();
}

void selectonce()
{
gets(temp);
for (i=0;i<=n;i++)
if (((strcmp(num[i],temp)==0)||(strcmp(cla[i],temp)==0))&&(f[i]==0))
printf("%s,%s,%s,%4.1f,%4.1f,%4.1f,%5.1f\n",num[i],cla[i],name[i],a1[i],a2[i],a3[i],a[i]);
printf("continue?\n");
gets(x3);
}

void order()
{
for (i=0;i for (j=i+1;j if ((strcmp(cla[i],cla[j])>0) || ((strcmp(cla[i],cla[j])==0) && (a[i]<a[j])))
swap(i,j);
output();
menu();
}

void swap(int i,int j)
{
strcpy(temp,num[i]);
strcpy(num[i],num[j]);
strcpy(num[j],temp);

strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);

strcpy(temp,cla[i]);
strcpy(cla[i],cla[j]);
strcpy(cla[j],temp);

t=a[i];
a[i]=a[j];
a[j]=t;

t=a1[i];
a1[i]=a1[j];
a1[j]=t;

t=a2[i];
a2[i]=a2[j];
a2[j]=t;

t=a3[i];
a3[i]=a3[j];
a3[j]=t;

tt=f[i];
f[i]=f[j];
f[j]=tt;

}

void output()
{
for (i=0;i<=n;i++)
if (f[i]==0)
printf("%s,%s,%s,%4.1f,%4.1f,%4.1f,%5.1f\n",num[i],cla[i],name[i],a1[i],a2[i],a3[i],a[i]);
}

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘