当前位置:首页 » 编程语言 » c语言输入学生名字并排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输入学生名字并排序

发布时间: 2022-05-10 18:39:04

1. c语言 编写一个程序,输入10位同学的姓名和成绩,并按学生成绩从高到低排序。

#include<stdio.h>
#include<string.h>
#defineN10
structstudent
{
charname[20];
intscore;
};
voidmain()
{
structstudentstu[N];
structstudent*p;
inti,v,s,temp;
chartempname1[20],tempname2[20];
for(i=0;i<N;i++)
{
printf("pleaseinput%dstudentname ",i+1);
scanf("%s",stu[i].name);
printf("pleaseinputthisstudentscore ");
scanf("%d",&stu[i].score);
}
for(i=0;i<N-1;i++)
{
for(v=i+1;v<N;v++)
{
if(stu[i].score<stu[v].score)
{
temp=stu[i].score;
stu[i].score=stu[v].score;
stu[v].score=temp;
strcpy(tempname1,stu[i].name);
strcpy(tempname2,stu[v].name);
for(s=0;s<20;s++)
{
stu[i].name[s]='';
stu[v].name[s]='';
}
strcpy(stu[i].name,tempname2);
strcpy(stu[v].name,tempname1);
for(s=0;s<20;s++)
{
tempname1[s]='';
tempname2[s]='';
}
}
}
}
printf("namescore ");
for(p=stu;p<stu+N;p++)
printf("%s%d ",p->name,p->score);
}

2. c语言中输入5个学生的姓名及三门课的成绩对按照各自总分高低进行排序

摘要 #include

3. C语言编程实现:输入10个学生的名字(不超过20个字符),按名字降序排序输出

//参考:

#include<string.h>
#include<stdio.h>

intmain()
{
charname[10][20],temp[20];
inti,j;
for(i=0;i<10;++i){
scanf("%s",name[i]);
}
for(i=0;i<10;++i){
for(j=i+1;j<10;++j){
if(strcmp(name[i],name[j])<0){
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
for(i=0;i<10;++i){
printf("%s ",name[i]);
}
return0;
}

4. C语言,数组。用键盘输入n个学生的姓名,并按字典顺序排序输出,n值由键盘输入。

#include <stdio.h>

#include<string.h>

int main ()

{int n,i,j;

char s[100][20],t[20];

scanf("%d",&n);

for(i=0;i<n;i++)

scanf("%s",s[i]);

for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

if(strcmp(s[j],s[j+1])>0)

{strcpy(t,s[j]);

strcpy(s[j],s[j+1]);

strcpy(s[j+1],t);

}

printf(" After: ");

for(i=0;i<n;i++)

puts(s[i]);

return 0;

}

5. C语言输入10个学生的姓名和学号 按照学号从小到大顺序排序 姓名随之调整

#include<stdio.h>
#include<string.h>
voidsort(inta[],charb[][11])//a为数组地址
{
inti,j,v;
chars[11];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
v=a[i];
a[i]=a[j];
a[j]=v;
strcpy(s,b[i]);
strcpy(b[i],b[j]);
strcpy(b[j],s);
}
}
}
main()
{
inta[10],i;
charb[10][11];
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
scanf("%s",b[i]);
}
sort(a,b);
for(i=0;i<=9;i++)
{
printf("%d%s ",a[i],b[i]);
}

}

6. 【C语言】输入学生姓名和成绩排序

这种一般都是要用到结构体的,不用结构体很难讲名字和成绩这种数据一一对应起来。

结构体都是设置一种结构,这个结构中可以放置各个类型的数据,比如说一个人是一个结构体,那么名字,身高,体重,性别,等等都可以作为结构体里的数据。然后用这个结构体来初始化一些人,比如说小明,你将小明的身高,体重,性别等等初始化赋值给这个结构体,就可以使用 . 这个运算符号来调用结构体里成员数据。比如说 小明.姓名 的值就是小明。

根据你的提问,具体代码如下:

首先定义一个结构体的定义:

typedef struct Student
{
char name[20]; //名字

int grade; //成绩

}

初始化各个实例:
struct Student Jack, Tom, Tim;

将各个成员赋值:
Jack.name[20] = Jack;
Jack.grade = 63;

以此类推。

排序的具体方法也不难,自己看看书吧。

使用结构体的好处就是将一组与一个事物相关的数值放在一起,统一的管理和调用。

7. c语言中输入5个学生的信息(包括姓名,性别,电话),怎么用sort函数将姓名按字典顺序排列并输出

#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define NUM 100
struct Str{char str[20];};
bool cmp(Str a,Str b)
{
return strcmp(a.str,b.str)<0;
}
int main()
{
int n;
Str str[NUM];
scanf("%d%*c",&n);//输入人的个数
for(int i=0;i<n;i++)
gets(str[i].str);//依次输入每个人的姓名,用回车键隔开
sort(str,str+n,cmp);
printf("排序后:\n");
for(int i=0;i<n;i++)
puts(str[i].str);
return 0;
}
这样子可以吗?

8. C语言。输入n个学生的姓名,语文,数学,英语成绩,

#include <stdio.h>

float average;

}stu[N],temp;

void main()

printf("请依次输入%d个学生的姓名、语文成绩、数学成绩、英语成绩: ",N);

scanf("%s%d%d%d",&stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].yingyu);

stu[i].average=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3.0;

printf(" 姓名 语文 数学 英语 平均分 ");

for(i=0;i<N;i++)

简介

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。

9. c语言利用指针将10个学生的姓名排序

参考下面
#include <stdio.h>
#include <string.h>
void input(char (*p)[10],int n)
{
int i; //int
for(i=0;i<n;i++)
{
printf("input第%d个姓名:",i+1);
scanf("%s",&p[i]);
printf("\n");
}
}
void output(char (*p)[10],int,n)
{
int i;
printf("排序之后为:");
for(i=0;i<n;i++)
{
printf("%s", p[i]);
printf("\n");
}
}
void sort(char (*p)[10],int n)
{
int i,j;
char t[10];//----------------
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j])>0)
{

strcpy( t,p[i] );
strcpy( p[i],p[j] );
strcpy( p[j],t);
}
}
int main()
{
char s[4][10];
input(s,4);
sort(s,4);
output(s,4);
system("pause");
return 0;
}

10. c语言,输入学生成绩和名字,排序时怎么才能让名字跟着成绩走

一开始就建两个数组,一个放成绩,一个放名字,如:
char name[100][20];
float score[100];
以后输入、输出、排序等等操作,都把name和score看做不可分离的一组(类似于同一个i的结构体变量),让name[i]和score[i]成为一对!排序时,当score[k]移动到m位置时,对应的name[k]也要同时移动的m位置。
这样,名字就跟着成绩走了。