c语言姓名首字母排序问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言姓名首字母排序问题相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student
char nam[30];
char sex[7];
int num;;
void Sort(struct Student *stu)
int i,j;
struct Student temp;
//开始进行冒泡排序
for(i=0;i<4;i++)
for(j=0;j<4-1;j++)
if(strcmp(stu[j].nam[0],stu[j+1].nam[0])<0) //比较首字符的ASCII
temp=stu[j]; //互换
stu[j]=stu[j+1];
stu[j+1]=temp;
main ()
struct Student stu[4];
int i;
printf("NOW INPUT\n");
for(i=0;i<4;i++) //
printf("Input name\n"); //输入姓名
gets(stu[i].nam);
printf("Input sex"); //输入性别
gets(stu[i].sex);
printf("Input number\n"); //输入学号
scanf("%d", &stu[i].num);
Sort(stu); //Sort函数
各位大哥,这是小弟自己想的,不知道对不对。主要目的是。按学生姓名的首字母排序
比如:Ann Bobby Daive ..... Tina ....
你的回答挺有意思!
gets不是输入?scanf不是输入?
#include <stdio.h>
#include <string.h>
int main()
char name[100][15];
char tmp[15];
int n,i,j;
scanf("%d",&n);//名字数
for ( i=0;i<n;i++)
scanf("%s",name[i]);
for (i=0;i<n;i++)
for (j=0;j<n-i-1;j++)
if (strcmp(name[j],name[j+1])>0)
strcpy(tmp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],tmp);
for (i=0;i<n;i++)
printf("%s\n",name[i]);
return 0;
本回答被提问者采纳
以上是关于c语言姓名首字母排序问题的主要内容,如果未能解决你的问题,请参考以下文章