前言
上次做了一个学生管理系统,但由于能力问题无法实现按成绩降序排序,前几天重新复习了下字符串然后诞生了个想法:或许我可以用字符串处理函数解决上次留下来的问题??
我太蒻了暂时只会这个
问题描述
将有限的学生信息输入并输出排序后的学生信息
Code:
#include<stdio.h>
#include<string.h>
int main ()//按照成绩降序排序
{
char sname[6][5]={"lzj","ryt","ljy","tsf","adj"};//学生姓名
char snum[6][5]={"001","002","003","004","005"};//学生编号
double score[10]={79,90,80,65,86};
char t[10];//字符工具人
double n;//双精度工具人
int i,j;
for(i=0;i<4;i++)
{
for(j=i;j<5;j++)
{
if(score[j]<score[j+1])
{
n=score[j];//成绩交换
score[j]=score[j+1];
score[j+1]=n;
strcpy(t,snum[j]);//学号交换
strcpy(snum[j],snum[j+1]);
strcpy(snum[j+1],t);
strcpy(t,sname[j]);//名字交换
strcpy(sname[j],sname[j+1]);
strcpy(sname[j+1],t);
}
}
}
printf("学号 名字 成绩\n");
for(i=0;i<5;i++)
{
printf("%s %s %5.1lf\n",snum[i],sname[i],score[i]);
}
return 0;
}
反思:
我其实是想设计一个可以自定义人数按照需求输入人数的程序的,“lzj”、“ryt”、“adj”…这是三个人,我一开始想用的是n=strlen(name)来表示人数的,但是发现strlen函数是表示出这个字符串所有的字符个数包括空格。因此我暂时还没有找到可以实现的方法…后续可能会补充上。