使用结构在C程序中按字母顺序排序姓名
结构是不同数据类型变量的集合,它们在一个单一的名称下分组。
结构的特点
在C编程语言中,结构的特点如下:
- 可以使用赋值运算符将不同数据类型的所有结构元素的内容复制到其类型的另一个结构变量中。
-
为处理复杂的数据类型,最好在另一个结构内创建结构,这称为嵌套结构。
-
可以将整个结构、结构的各个元素和结构的地址传递给函数。
-
可以创建结构指针。
结构的声明和初始化
结构声明的一般形式如下:
datatype member1;
struct tagname{
datatype member2;
datatype member n;
};
在这里,
- struct 是关键字。
- tagname 指定了结构的名称。
- member1, member2 是数据项。
例如,
struct book{
int pages;
char author [30];
float price;
};
程序
以下是用C语言编写的程序,使用结构体按字母顺序对名称进行排序
–
#include<stdio.h>
#include<string.h>
struct tag{
char name[10];
int rno;
};
typedef struct tag node;
node s[5];
sort(int no){
int i,j;
node temp;
for(i=0;i<no-1;i++)
for(j=i+1;j<no;j++)
if(strcmp(s[i].name,s[j].name)>0){
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
void main(){
int no,i;
fflush(stdin);
printf("Enter The Number Of Students:");
scanf("%d",&no);
for(i=0;i<no;i++){
printf("Enter The Name:");
fflush(stdin);
gets(s[i].name);
printf("Enter the Roll:");
scanf("%d",&s[i].rno);
}
sort(no);
for(i=0;i<no;i++){
printf("%s\t",s[i].name);
printf("%d
",s[i].rno);
}
}
输出
当上面的程序被执行时,会产生以下结果 –
Enter The Number of Students:5
Enter The Name:Priya
Enter the Roll:3
Enter The Name:Hari
Enter the Roll:5
Enter The Name:Pinky
Enter the Roll:7
Enter The Name:Lucky
Enter the Roll:1
Enter The Name:Krishna
Enter the Roll:2
Hari 5
Krishna 2
Lucky 1
Pinky 7
Priya 3