You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15 KiB

步骤1 int main() { char controll; char arr1[] = { " 1.Input" }; char arr2[] = { " 2.Output" }; char arr3[] = { " 3.Order" }; char arr4[] = { " 4.Quit" }; char arr5[] = { "You are trying to Input info" }; char arr6[] = { "You are trying to Output info" }; char arr7[] = { "You are trying to Make things ordered" }; char arr8[] = { "You are about to Quit" }; printf("%s\n%s\n%s\n%s\n", arr1, arr2, arr3, arr4); scanf_s("%c", &controll); switch (controll) { case 'i':printf("\n%s\n", arr5); break; case 'o':printf("\n%s\n", arr6); break; case 'm':printf("\n%s\n", arr7); break; case 'q':printf("\n%s\n", arr8); break; default:printf("Wrong input"); }

} 步骤2 #include<stdio.h> int main() { int num[3]; float math[3],physic[3],english[3],sum[3]; int i; for(i=0;i<3;i++) { scanf("%d %f %f %f",&num[i],&math[i],&physic[i],&english[i]); sum[i]=math[i]+physic[i]+english[i]; } for(i=0;i<3;i++) { printf("%d %.1f %.1f %.1f %.1f\n",num[i],math[i],physic[i],english[i],sum[i]); } }

步骤3 int main() { char controll; char arr1[] = { " 1.Input" }; char arr2[] = { " 2.Output" }; char arr3[] = { " 3.Order" }; char arr4[] = { " 4.Quit" }; char arr5[] = { "Please input info of the three students:" }; char arr7[] = { "You are trying to Make things ordered" }; char arr8[] = { "You are about to Quit" }; printf("%s\n%s\n%s\n%s\n", arr1, arr2, arr3, arr4); scanf_s("%c", &controll); switch (controll) { case 'i':printf("\n%s\n", arr5); break; case 'm':printf("\n%s\n", arr7); break; case 'q':printf("\n%s\n", arr8); break; default:printf("Wrong input"); } struct student { int number; float gaoshu; float dawu; float yy; float add; float aver; }student1, student2, student3,studenttemp; scanf("%d",&student1.number); scanf("%f",&student1.gaoshu); scanf("%f",&student1.dawu); scanf("%f",&student1.yy); scanf("%d",&student2.number); scanf("%f",&student2.gaoshu); scanf("%f",&student2.dawu); scanf("%f",&student2.yy); scanf("%d",&student3.number); scanf("%f",&student3.gaoshu); scanf("%f",&student3.dawu); scanf("%f",&student3.yy); student1.add = (student1.gaoshu + student1.dawu + student1.yy); student2.add = (student2.gaoshu + student2.dawu + student2.yy); student3.add = (student3.gaoshu + student3.dawu + student3.yy); student1.aver = student1.add / 3; student2.aver = student2.add / 3; student3.aver = student3.add / 3; if (student1.add > student2.add) { studenttemp = student1; student1 = student2; student2 = studenttemp; } if (student1.add > student3.add) { studenttemp = student1; student1 = student3; student3 = studenttemp; } if (student2.add > student3.add) { studenttemp = student2; student2 = student3; student3 = studenttemp; } printf("%d,%.1f,%.1f\n", student1.number, student1.add, student1.aver); printf("%d,%.1f,%.1f\n", student2.number, student2.add, student2.aver); printf("%d,%.1f,%.1f\n", student3.number, student3.add, student3.aver);

} 步骤四 #include <stdio.h> int num[4],cla[4]; float f[4],s[4],t[4],add[4]; int begin,sta; int n=4; int insert; void sort(float add[]) { int i,j,te; float zh; for(i=n-1;i>sta;i--) { if(add[i]>add[i-1]) { zh=add[i];add[i]=add[i-1];add[i-1]=zh; te=num[i];num[i]=num[i-1];num[i-1]=te; zh=f[i];f[i]=f[i-1];f[i-1]=zh; zh=s[i];s[i]=s[i-1];s[i-1]=zh; zh=t[i];t[i]=t[i-1];t[i-1]=zh; } } if(n!=sta+1) { sta++; sort(add);} }

void div(int clas[]) { int i,j,te; float zh; for(i=0;i<n-1;i++) { if(clas[i]>clas[i+1]) { te=clas[i];clas[i]=clas[i+1];clas[i+1]=te; zh=add[i];add[i]=add[i+1];add[i+1]=zh; te=num[i];num[i]=num[i+1];num[i+1]=te; zh=f[i];f[i]=f[i+1];f[i+1]=zh; zh=s[i];s[i]=s[i+1];s[i+1]=zh; zh=t[i];t[i]=t[i+1];t[i+1]=zh; } } if(n!=sta+1){ n--; div(clas);}

}

int main() { void sort(float add[]); void div(int clas[]); num[0]=10001;num[1]=10002;num[2]=10003; cla[0]=11;cla[1]=12;cla[2]=11; f[0]=99.5;f[1]=77.9;f[2]=92.5; s[0]=88.5;s[1]=56.5;s[2]=99.0; t[0]=89.5;t[1]=87.5;t[2]=60.5; for(int i=0;i<3;i++) { add[i]=f[i]+s[i]+t[i]; } scanf("%d",&num[3]); insert=num[3]; int in=num[3]; for(int i=0;i<3;i++){ if(in==num[i]){ printf("%d %d %f %f %f %f",num[i],cla[i],f[i],s[i],t[i],add[i]); return 0; } } scanf("%d",&cla[3]); scanf("%f",&f[3]); scanf("%f",&s[3]); scanf("%f",&t[3]); add[3]=f[3]+s[3]+t[3]; sta=0;begin=0; div(cla); n=4; int m; for(m=0;m<n;m++){ if(cla[m]!=cla[m+1]) break; } sta=m;begin=sta; sort(add); n=m+1; sta=0;begin=sta; sort(add); n=4; for(int j=0;j<n;j++){ printf("%d %d %f %f %f %f",num[j],cla[j],f[j],s[j],t[j],add[j]); if(num[j]==insert) printf(" insert\n"); else printf("\n"); }

} 步骤五 #include <stdio.h> #include <string.h> #include <stdlib.h> int num[4],cla[4]; float f[4],s[4],t[4],add[4]; int begin,sta; int n=3; int insert; char name[4][10]={{"Zhang"},{"Yang"},{"Liang"}}; void sort(float add[]) { int i,j,te; float zh; char oo[10]; for(i=n-1;i>sta;i--) { if(add[i]>add[i-1]) { zh=add[i];add[i]=add[i-1];add[i-1]=zh; te=num[i];num[i]=num[i-1];num[i-1]=te; zh=f[i];f[i]=f[i-1];f[i-1]=zh; zh=s[i];s[i]=s[i-1];s[i-1]=zh; zh=t[i];t[i]=t[i-1];t[i-1]=zh; strcpy(oo,name[i]);strcpy(name[i],name[i-1]); strcpy(name[i-1],oo); } } if(n!=sta+1) { sta++; sort(add);} }

void div(int clas[]) { int i,j,te; float zh; char oo[10]; for(i=0;i<n-1;i++) { if(clas[i]>clas[i+1]) { te=clas[i];clas[i]=clas[i+1];clas[i+1]=te; zh=add[i];add[i]=add[i+1];add[i+1]=zh; te=num[i];num[i]=num[i+1];num[i+1]=te; zh=f[i];f[i]=f[i+1];f[i+1]=zh; zh=s[i];s[i]=s[i+1];s[i+1]=zh; zh=t[i];t[i]=t[i+1];t[i+1]=zh; strcpy(oo,name[i]);strcpy(name[i],name[i+1]); strcpy(name[i+1],oo); } } if(n!=sta+1){ n--; div(clas);}

}

int main() { void sort(float add[]); void div(int clas[]); num[0]=10001;num[1]=10002;num[2]=10003; cla[0]=11;cla[1]=12;cla[2]=11; f[0]=99.5;f[1]=77.9;f[2]=92.5; s[0]=88.5;s[1]=56.5;s[2]=99.0; t[0]=89.5;t[1]=87.5;t[2]=60.5; sta=0;begin=0; div(cla); n=3; int m; for(m=0;m<n;m++){ if(cla[m]!=cla[m+1]) break; } sta=m;begin=sta; sort(add); n=m+1; sta=0;begin=sta; sort(add); n=3; //scanf("delete"); printf("请输入要删除的学生信息(学号或姓名)\n"); scanf("%s",name[3]); int exist=0,target; if(name[3][0]>='0'&&name[3][0]<='9') { int number=atoi(name[3]); for(int i=0;i<3;i++){ if(number==num[i]){ printf("Are you sure(yes)?\n"); exist=1; target=i; break; } } } else { for(int i=0;i<3;i++){ if(strcmp(name[i],name[3])); else{ printf("Are you sure(yes)?\n"); exist=1; target=i; break; } } } char ch; if(exist==1){ scanf(" %c",&ch); if(ch=='y'){ for(int i=0;i<3;i++){ if(i!=target){ printf("%d %d %s %.2f %.2f %.2f\n",num[i],cla[i],name[i],f[i],s[i],t[i]); } } } if(ch=='n'){ for(int i=0;i<3;i++){ printf("%d %d %s %.2f %.2f %.2f\n",num[i],cla[i],name[i],f[i],s[i],t[i]); } } } else{ for(int i=0;i<3;i++){ printf("%d %d %s %.2f %.2f %.2f\n",num[i],cla[i],name[i],f[i],s[i],t[i]); } } return 0; } 步骤六 #include<stdio.h> struct Scoreb{ int schoolnumber; int classnumber; char name[20]; float math; float physics; float english; float sum; }; int main(){ struct Scoreb student1={10001,11,"Zhang",99.5,88.5,89.5,277.5}; struct Scoreb student2={10002,12,"Yang",77.9,56.5,87.5,221.9}; struct Scoreb student3={10003,11,"Liang",92.5,99.0,60.5,252}; struct Scoreb students[3] = {student1,student2,student3};

struct Scoreb schange;
scanf("%d%d%s%f%f%f",&schange.schoolnumber,&schange.classnumber,&schange.name,&schange.math,&schange.physics,&schange.english);int c=schange.schoolnumber;
for(int i=0;i<3;i++){
	if(schange.schoolnumber==students[i].schoolnumber){
		schange.sum = schange.math+schange.physics+schange.english;
		students[i]=schange;
	}	
}

for(int j = 0 ; j < 3 ; j++)
	for(int k = 2; k > j;k--){
		if(students[k].classnumber <students[k-1].classnumber){
			struct Scoreb temp1 = students[k-1];
			students[k-1] = students[k];
			students[k] = temp1;
		
		}else if(students[k].classnumber == students[k-1].classnumber){
			if(students[k].sum>students[k-1].sum){
			struct Scoreb temp2 = students[k-1];
			students[k-1] = students[k];
			students[k] = temp2;
			}
		}
	}
 
for(int i = 0; i < 2 ; i++){
	printf("%d %d %s %.1f %.1f %.1f ",students[i].classnumber,students[i].schoolnumber,students[i].name,students[i].math,students[i].physics,students[i].english);
	if(c==students[i].schoolnumber)
	printf("modified\n");
	if(students[0].classnumber==students[1].classnumber)
	{
	printf("   %d %s %.1f %.1f %.1f\n",students[1].schoolnumber,students[1].name,students[1].math,students[1].physics,students[1].english);break;}
}
printf("%d %d %s %.1f %.1f %.1f\n",students[2].classnumber,students[2].schoolnumber,students[2].name,students[2].math,students[2].physics,students[2].english);
if(c==students[2].schoolnumber)
printf(" modified");
return 0; 

}

步骤七 #include <stdio.h> #include <string.h> struct student { int number; int clas; char name[10]; float grade1; float grade2; float grade3; float sum; int signal; }student[7]={{10001,11,"Zhang",99.5,88.5,89.5,0,0}, {10002,12,"Yang",77.9,56.5,87.5,0,0}, {10003,11,"Liang",92.5,99.0,60.5,0,0}, {10004,11,"Cai",89.6,56.9,90.5,0,0}, {10005,14,"Fu",55.6,67.9,98.9,0,0}, {10006,12,"Mao",22.1,45.9,99.2,0,0}, {10007,13,"Zhan",35.6,67.9,88.0,0,0} }; struct student temp;

void clas(); void number(); void name(); void grade(); void classandnumber();

const int n=7; int main() { int identity; scanf("%d",&identity); for(int i=0;i<7;i++) { student[i].sum=student[i].grade1+student[i].grade2+student[i].grade3; } int i,j,k; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(student[j].clas<student[k].clas) { k=j; } else if(student[j].clas==student[k].clas) { if(student[j].sum>student[k].sum) { k=j; } } } temp=student[k]; student[k]=student[i]; student[i]=temp; } switch(identity) { case 1:clas();break; case 2:number();break; case 3:name();break; case 4:grade();break; case 5:classandnumber();break; default:printf("Wrong input!\n"); } for(i=0;i<n;i++) { if(student[i].signal!=0) { printf("%6d %3d %8s %6.1f %6.1f %6.1f\n",student[i].number,student[i].clas,student[i].name,student[i].grade1,student[i].grade2,student[i].grade3); } } return 0; }

void clas() { int inf,noun,sup; scanf("%d%c%d",&inf,&noun,&sup); printf("%d %d",inf,sup); for(int i=0;i<7;i++) { if(student[i].clas>=inf&&student[i].clas<=sup) student[i].signal=1; } }

void number() { int inf,noun,sup; scanf("%d%c%d",&inf,&noun,&sup); for(int i=0;i<7;i++) { if(student[i].number>=inf&&student[i].number<=sup) student[i].signal=1; } }

void name() {
int i=0,k,count; char initial[10]; scanf("%s",initial); printf("%s\n",initial); count=strlen(initial); bool flag=true; for(int i=0;i<n;i++) { for(int j=0;j<count-2;j++) { if(student[i].name[j]!=initial[j]) flag=false; } if(flag) { student[i].signal=1; }
} }

void grade() { int inf; scanf("%d",&inf); for(int i=0;i<7;i++) { if(student[i].sum>=inf) student[i].signal=1; } }

void classandnumber() { int clas,noun1,inf,noun2,sup; scanf("%d%c%d%c%d",&clas,&noun1,&inf,&noun2,&sup); for(int i=0;i<7;i++) { if(student[i].clas==clas) { if(student[i].number>=inf&&student[i].number<=sup) student[i].signal=1; } } } 步骤八 #include<stdio.h> #include<string.h> #define N 100

struct stu_info { char num[20]; char cls[20]; char name[20]; float math,physics,english,total; };

struct stu_info stu[N]; int top=0;

void print_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"); }

void print() { int i; for(i=0;i<top;i++) printf("%s,%s,%s,%.1f,%.1f,%.1f,%.1f\n",stu[i].num,stu[i].cls,stu[i].name,stu[i].math,stu[i].physics,stu[i].english,stu[i].total); }

void input() { char op[20]; while(1) { printf("Id "); scanf("%s",stu[top].num); printf("class "); scanf("%s",&stu[top].cls); printf("name "); scanf("%s",stu[top].name); printf("score1 "); scanf("%f",&stu[top].math); printf("score2 "); scanf("%f",&stu[top].physics); printf("score3 "); scanf("%f",&stu[top].english); stu[top].total=stu[top].math+stu[top].physics+stu[top].english; top++; printf("continue?\n"); do{ scanf("%s",op); }while(strcmp(op,"yes")!=0&&strcmp(op,"no")!=0); if(strcmp(op,"no")==0) return; } }

void del() { int i,d; char key[20],op[20]; while(1) { i=0,d=0; scanf("%s",key); while(i<top) { if(strcmp((stu+i)->num,key)==0||strcmp((stu+i)->name,key)==0) { d++;top--; (stu+i)=(stu+i+d); } else { (stu+i)=(stu+i+d); i++; } } print(); printf("continue?\n"); do{ scanf("%s",op); }while(strcmp(op,"yes")!=0&&strcmp(op,"no")!=0); if(strcmp(op,"no")==0) return; } }

void select() { int i,flag; char key[20],op[20]; while(1) { flag=0; scanf("%s",key); for(i=0;i<top;i++) { if(strcmp((stu+i)->num,key)==0||strcmp((stu+i)->cls,key)==0) { flag=1; printf("%s,%s,%s,%.1f,%.1f,%.1f,%.1f\n",stu[i].num,stu[i].cls,stu[i].name,stu[i].math,stu[i].physics,stu[i].english,stu[i].total); } } if(!flag) { printf("there is no eligible student\n"); return; } printf("continue?\n"); do{ scanf("%s",op); }while(strcmp(op,"yes")!=0&&strcmp(op,"no")!=0); if(strcmp(op,"no")==0) return; } }

void order() { int i,j; struct stu_info tmp; for(i=0;i<top;i++) { for(j=0;j<top-i-1;j++) { if(strcmp((stu+j)->cls,(stu+j+1)->cls)==1||strcmp((stu+j)->cls,(stu+j+1)->cls)==0&&((stu+j)->total<(stu+j+1)->total)) { tmp = *(stu+j); *(stu+j) = *(stu+j+1); *(stu+j+1) = tmp; } } } print(); return; }

int main() { int op; while(1) { print_menu(); scanf("%d",&op); switch(op) { case(1): input(); break; case(2): del(); break; case(3): select(); break; case(4): order(); break; case(5): print(); break; case(6): return 0; } } }