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

作者&投稿:危待 (若有异议请与网页底部的电邮联系)
C语言编程,输入学生姓名与成绩,将成绩排序,姓名对应排序输出。用数组编程。帮忙纠错~

你的scanf语句里面要加&符号吧

&b[i][10]
&a[i]

一维数组 按你理解应该怎么存储多个名字?
一维char是一个连续的字符串 所以你使用b[i]访问他的时候 只能读取或写入一个字符 而名字是有多个字符组成的。
用一维数组表示字符串是比较麻烦的 你可以先定义一个大的char数组
比如 char b[最大名字个数*10]
然后 再
for(int i=0;i<3;i++){
scanf("%s",&b[i*10]);//每一次循环向后移动10个字符位置
}
然后说一下 你gets(b[i]) 函数应该传char* 也就是字符指针 而不是字符 应该是 &b[i]
再就是没有看到声明p变量
最后查一下排序有没有问题吧

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

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

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

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

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

int grade; //成绩

}

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

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

以此类推。

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

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


C语言编程,输入一个学生的姓名、学号、英语、数学、计算机成绩,输出学生...
} 输入:Please input student's name:Lihua Please input student's number:123456789 Please input student's English score:80.5 Please input student's Math score:91 Please input student's Computer score:89.5 输出:Name:Lihua NUmber:123456789 Score:87.00 ...

编写一个c语言程序,实现录入学生学号和姓名信息的功能
include<stdlib.h> intmain(void){ chars[10];\/\/姓名 intnum;\/\/学号 printf("请输入姓名:\\n");gets(s);printf("请输学号:\\n");scanf("%d",&num);printf("姓名是:%s\\n学号是:%d\\n",s,num);system("pause");return0;}

C语言,数组。用键盘输入n个学生的姓名,并按字典顺序排序输出,n值由键 ...
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]...

编写一个c语言程序,实现录入学生学号和姓名信息的功能
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、然后在St...

C语言 要求通过键盘输入三个学生信息(包括姓名、学号、班级),并输出这...
char name[20];int id;char _class[20];};int main(){ struct st s[11];\/\/定义结构体数组;for(int i=0;i<3;i++)scanf("%s%d%s",s[i].name,&s[i].id,s[i]._class);\/\/输入 for(int i=0;i<3;i++)printf("姓名:%s 学号:%d 班级:%s\\n",s[i].name,s[i].id,s[...

c语言输入两个学生的姓名、学号、英语、数学、计算机成绩
int main(){ char name[2][20]={null};int id[2]={0};float score[3][2]={0};printf("请输入第1个学生的姓名:\\n");gets(name[0]);printf("请输入第1个学生的学号:\\n");scanf("%d",&id[0]);printf("请输入第1个学生的英语成绩:\\n");scanf("%f",&score[0][0]);printf...

C语言从键盘输入10个学生姓名存入
printf("请输入第%d个学生的信息:名字,学号,性别和年龄:\\n",i+1);scanf("%s%d%s%d",student[i].name,&student[i].num,student[i].sex,&student[i].age);} printf("十个学生的信息如下:\\n");for(i=0;i<10;i++){ printf("姓名:%s\\t学号:%d\\t性别:%s\\t年龄:%d\\n",...

C语言:输入10个姓并按字典序的升序排序
};void main(){ int i,j;char str[20];struct xing ren[10];\/\/结构体数组,用来建立多少个人来存放的 for (i=0;i<10;i++){ printf ("请输入第 %d 姓: ",i+1);scanf ("%s",ren[i].name);} for (i=1;i<10;i++)for (j=0;j<10-i;j++){ if (strcmp(ren[j].name,...

c语言学生成绩录入系统,怎么输入中文姓名
姓名变量定义成字符数组,用scanf("%s")输入即可。如:char name[30]; \/\/字符数组要足够宽,一般一个汉字由两个字节组成。scanf("%s", name ); \/\/此时,切换输入法到中文,输入汉字即可 printf("name=%s\\n", name );

用C语言编写一个通过键盘或文件输入学生信息,并将学生信息输出到文件...
用C语言编写一个通过键盘或文件输入学生信息,并将学生信息输出到文件和屏幕的程序 100 七、对编程的具体说明如下:1)定义一个student结构体如下:structstudent{charname[20];\/\/姓名floatscore[4];\/\/四门功课的成绩floataverage;\/\/四门功课的平均成绩intorder;\/\/根据平均... 七、 对编程的具体说明如下:1) 定义...

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

杭锦旗19647384687: 【C语言】输入学生姓名和成绩排序 -
栋轮尼可: 这种一般都是要用到结构体的,不用结构体很难讲名字和成绩这种数据一一对应起来. 结构体都是设置一种结构,这个结构中可以放置各个类型的数据,比如说一个人是一个结构体,那么名字,身高,体重,性别,等等都可以作为结构体里的数...

杭锦旗19647384687: C语言 按姓名降序和分数升序排列 -
栋轮尼可: typedef struct Student { char term[10]; //学期 char num[12]; //保存学号 char name[20]; //保存姓名 char cgrade[10]; //保存C语言成绩 char mgrade[10]; //保存数学成绩 char egrade[10]; //保存英语成绩 int sum; //总分 float average;//平均分 ...

杭锦旗19647384687: C语言 编写一个程序,输入10位同学的姓名和成绩,并按学生成绩从高到低排序. -
栋轮尼可: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 #include<stdio.h>#include<string.h>#define N 10 structstudent { charname[20]; intscore; }; voidmain() { structstudent stu[N]; ...

杭锦旗19647384687: 用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩 -
栋轮尼可: 你好,我们这里需要用到数组镶套使用for函数以及冒泡算法,具体的代码如下. #include <iostream> using namespace std; int main() { int s [10], i, j, t; cout << "输入10个数:"; for (i = 0; i < 10; i++) { cout << "请输入第" << i+1 << "名学生的...

杭锦旗19647384687: 编程实现:输入一组学生的姓名和成绩,根据成绩降序排名.
栋轮尼可: 就是用结构体数组形式输入每个同学的信息,然后用循环语句根据成绩排名

杭锦旗19647384687: c语言程序设计 学生成绩排序系统 -
栋轮尼可: #include#include#include#include#define MAX 200void dis_menu();void load_score();void sort_english();void so...

杭锦旗19647384687: C语言学生成绩单排名 -
栋轮尼可: #include main() { void paixun(int a[],int n); void new_px(int a[],int ad); void fx(int a[],int n); int a[11],i; printf("请输入10个同学的成绩\n"); for(i=0;ia[k]) k=j; temp=a[i];a[i]=a[k];a[k]=temp; } } void new_px(int a[],int ad) { int i,j,x,k; x=ad; for(i=0;ik;i--) { a[i]=a[i-1]; } a[k]=x; printf("新的排序\n"); for(i=0;i

杭锦旗19647384687: c语言编程:输入学生信息(姓名,年龄,分数),并按照分数由高到低输出. -
栋轮尼可: 去百度文库,查看完整内容>内容来自用户:Mrbabyface输入学生信息(姓名,年龄,分数),并按照分数由高到低输出. # include # include struct student {int age; float score; char name[100]; }; input_stlen(int *num) { printf("请输入学生总...

杭锦旗19647384687: 用C语言编程:从键盘输入10个学生的成绩和学号,将其排序输出,并输出中要有相应的学生学号 -
栋轮尼可: # include<stdio.h>struct student {int id;int score; }stu[10];int main(void) {int i,m;struct student j; for( i=0; i<10; i++){printf("请输入学生的学号:");scanf("%d",&stu[i].id);printf("请输入学生的成绩:");scanf("%d",&stu[i]....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网