当前位置:首页 » 成绩查询 » c语言成绩排名

c语言成绩排名

发布时间: 2021-01-15 05:16:22

㈠ c语言 学生成绩排名

#include<stdio.h>
voidsetList(int*a,intlen);
voidprintfList(int*a,intlen);
voidpxList(int*a,intlen);
voidinsertList(int*a,intlen);
voidfanList(int*a,intlen);
intmain()
{
inta[11];//1.定义一个数组a[11],用以存放学生的成绩。
setList(a,10);//2.从键盘输入10个学生成绩。
pxList(a,10);//3.采用选择法,将学生成绩按照从高到低进行排序。
printfList(a,10);
insertList(a,10);//4.再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组。
printfList(a,11);
fanList(a,11);//5.将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列
printfList(a,11);
return0;
}
voidsetList(int*a,intlen)//输入
{
inti;
printf("请输入%d个学生成绩 ",len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
}
voidprintfList(int*a,intlen)//打印数组
{
inti;
printf(" ---打印数组--- ");
for(i=0;i<len;i++)
printf("%d",a[i]);

}
voidpxList(int*a,intlen)//选择排序
{
inti,j;
printf(" ---从大到小排序--- ");
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if(a[i]<a[j])
{
a[j]^=a[i];
a[i]^=a[j];
a[j]^=a[i];
}
}
voidinsertList(int*a,intlen)//插入数组
{
printf(" ---插入数组--- ");
printf("输入要插入的数:");
scanf("%d",&a[len]);
pxList(a,11);
}
voidfanList(int*a,intlen)//数组反向存储
{
int*p0,*p1;
p0=a;
p1=&a[len-1];
while(p0<p1)
{
*p0^=*p1;
*p1^=*p0;
*p0^=*p1;
p0++;
p1--;
}

}

㈡ 用C语言给总分排名,就十个人,分数已知,求思路,可以的话附上代码

#include <iostream>

using namespace std;//命名空间声明

int a[10+1];//全局变量
int main()

{
int i,j;
int c;
for (i=1;1<=10;i++)
{
j=i+1;
if (a[i]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}
for (i=1;i<=10;i++)
{
cout<<a[i];
}
/*十个人的成绩是a[1]~专a[10]
自己输入属*/
return 0;
}

㈢ c语言编程,输出10位同学的成绩及其所对应的名次。(相同的成绩及名次可以不重复输出)

#include<stdio.h>
structstudent
{
charszName[100];
intscore;//成绩

//等号重载
studentoperator=(student&st)
{
sprintf(szName,st.szName);

score=st.score;
return*this;
}
};

intmain()
{
constintstuCount=10;
studentstuArray[stuCount];

for(inti=0;i<stuCount;i++)
{
printf("请输入第%d个学生的姓名成绩 ",(i+1));
scanf("%s%d",
stuArray[i].szName,
&stuArray[i].score);
}

//排序
for(inti=0;i<stuCount;i++)
{
for(intj=0;j<stuCount-i-1;j++)
{
if(stuArray[j+1].score>stuArray[j].score)
{
studentstu=stuArray[j];
stuArray[j]=stuArray[j+1];
stuArray[j+1]=stu;
}
}
}

//打印
printf("名次 姓名 成绩 ");

for(inti=0;i<stuCount;i++)
{
printf("%d %s %d ",(i+1),stuArray[i].szName,stuArray[i].score);
}

return0;
}

运行结果如下:

㈣ C语言 输入N个学生成绩,求他们的名次

运行结果如图专:属

#include<stdio.h>
intmain()
{intn,i,j,a[100][2];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i][0]);
for(i=0;i<n;i++)
{a[i][1]=1;
for(j=0;j<n;j++)
a[i][1]+=a[j][0]>a[i][0];
}
for(i=0;i<n;i++)
printf("%d%d ",a[i][0],a[i][1]);
return0;
}

㈤ C语言:总分相同时名次相同例如,假设成绩280,275,275,250则对应名次为1,2,2,4

#include "stdio.h" void main() { int score[3][3], i,j; float sum[3],average[3]; printf("请分别来输入三个学源生的成绩:\n"); for(i=0;i<3;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0 sum[i]+=score[i][j]; average[i]=sum[i]/3; } } for(i=0;i<3;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); }

㈥ C语言设计学生成绩管里系统,输入全校信息,然后输入班级进行各科排名,就这部应该怎么做 ,请大神指教

|临时写的,没有编译,应该差不离。 #include #define MAX_CORE_NUM 3 #define MAX_STU_NUM 100 struct stu_info_t { int no; char name[50]; int is_male; int core[MAX_CORE_NUM]; int core_total; int rank; }; int class_min_stu[MAX_CORE_NUM]; int class_max_stu[MAX_CORE_NUM]; struct stu_info_t stu_info[MAX_STU_NUM]; int stu_num = 0; int input_stu_info() { char q = 0; int i = 0; int j = 0; char c = 0; printf("请输入所有学生信息:\n"); i = 0; while (q != 'q' && q != 'Q' && i < MAX_STU_NUM) { printf("学号:"); scanf("%d", &(stu_info[i].no)); printf("姓名:"); scanf("%s", stu_info[i].name); printf("性别(M/m - 男生,F/f - 女生):"); scanf("%c", &c); if (c == 'M' || c == 'c') stu_info[i].is_male = 1; else stu_info[i].is_male = 0; stu_info[i].core_total = 0; for (j = 0; j MAX_CORE_NUM; j++) { printf("课程%d得分:", j+1); scanf("%d", &(stu_info[i].core[j])); stu_info[i].core_total += stu_info[i].core[j]; } i++; if (i >= MAX_STU_NUM) { printf("最多输入%d个学生信息\n", MAX_STU_NUM); break; } printf("退出(Q/q):"); scanf("%c", &q); } stu_num = i; return 0; } int save_stu_info() { int i = 0; int j = 0; FILE * fp = NULL; fp = fopen("students.txt", "rw"); if (fp == NULL) return -1; fprintf(fp, "\t学号\t姓名\t性别"); for (j = 0; j < MAX_CORE_NUM; j++) { fprintf(fp, "\t课程%d", j+1); } fprintf(fp, "\r\n"); for (i = 0; i < stu_num; i++) { fprintf(fp, "\t%d\t%s\t%s", stu_info[i].no, stu_info[i].name, (stu_info[i].is_male ? "男" : "女")); for (j = 0; j < MAX_CORE_NUM; j++) { fprintf(fp, "\t%d", stu_info[i].core[j]); } fprintf(fp, "\r\n"); } fclose(fp); return 0; } int cal_rank() { int i = 0; int j = 0; int class_min; int class_max; struct stu_info_t t; for (i = 0; i < stu_num - 1; i++) { for (j = i + 1; j < stu_num; j++) { if (stu_info[i].core_total < stu_info[j].core_total) { memcpy(&t, &stu_info[j], sizeof(struct stu_info_t)); memcpy(&stu_info[j], &stu_info[i], sizeof(struct stu_info_t)); memcpy(&stu_info[i], &t, sizeof(struct stu_info_t)); } } } for (i = 0; i < stu_num; i++) { stu_info[i].rank = i + 1; } for (j = 0; j < MAX_CORE_NUM; j++) { class_min = 0; class_max = 10000; for (i = 0; i < stu_num; i++) { if (stu_info[i].core[j] class_min) { class_min = stu_info[i].core[j]; class_min_stu[j] = i; } if (stu_info[i].core[j] > class_max) { class_max = stu_info[i].core[j]; class_max_stu[j] = i; } } } return 0; } int output_total() { int i = 0; printf("\t学号\t姓名\t总分\t排名\n"); for (i = 0; i < stu_num; i++) { printf("\t%d\t%s\t%d\t%d\n", stu_info[i].no, stu_info[i].name, stu_info[i].core_total, stu_info[i].rank); } return 0; } int output_class() { int i = 0; int j = 0; int core = 0; for (j = 0; j < MAX_CORE_NUM; j++) { core = stu_info[class_max_stu[j]].core[j]; printf("课程%d最高分:%d\n", j+1, core); printf("\t学号\t姓名\n"); for (i = 0; i < stu_num; i++) { if (stu_info[i].core[j] == core) { printf("\t%d\t%s\n", stu_info[i].no, stu_info[i].name); } } } for (j = 0; j < MAX_CORE_NUM; j++) { core = stu_info[class_min_stu[j]].core[j]; printf("课程%d最低分:%d\n", j+1, core); printf("\t学号\t姓名\n"); for (i = 0; i < stu_num; i++) { if (stu_info[i].core[j] == core) { printf("\t%d\t%s\n", stu_info[i].no, stu_info[i].name); } } } return 0; } void main() { input_stu_info(); save_stu_info(); cal_rank(); output_total(); output_class(); return; }

㈦ c语言程序求设计,关于成绩分析排名的

软件开发就是拆解问题,然后一步步实现即可

1学会怎样读取文件,按行读取文件
2可以按照空格分割数据,获取到数据的分数,学号,姓名等信息
3根据获取的信息进行计算比较
4排序所给数据
5数据的写入,有对应的函数

㈧ c语言 一班10个同学的成绩 输入10个成绩降序排序并输出 然后键盘录入其中一个成绩输出该成绩名次

#include
int main()
{
int a[10],i,j,t,k;
printf("请以次输入10个学生的成绩:回");
for(i=0;i<10;i++)scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
答 k=i;
for(j=i;j<10;j++)
if(a[j]>a[k])k=j;
if(i!=k)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}

}
printf("由高到低排序输出成绩:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
return 0;
}

㈨ C语言 学生成绩排序 按学生的序号输入 n 名学生的成绩,按照分数由高到低的顺序输出学生的名次、序号和成绩

#include<stdio.h>
#include<malloc.h>
typedefstructstudent
{
intid;
intscore;
structstudent*next;
}STU;
intstuIndex;

voidinputStuInfo(STU*stuHead);//输入学生信息
voidorderStuInfo(STU*stuHead);//按照分数高到低顺序重组链表
voidprintStuInfo(STU*stuHead,intflag);//打印学生信息。参数flag=0:正常打印链表信息。flag!=0:打印排序后的名次信息
intmain()
{
STU*stuHead=(STU*)malloc(sizeof(STU));
stuHead->next=NULL;
stuIndex=1;
inputStuInfo(stuHead);
printf("--打印原始输入的链表!-- ");
printStuInfo(stuHead,0);
printf("--开始按分数降序排列!-- ");
orderStuInfo(stuHead);
printf("--链表按降序重组完成!-- ");
printf("--打印降序排序的链表!-- ");
printStuInfo(stuHead,1);
return0;
}
voidorderStuInfo(STU*stuHead)
{
STU*stuSave1=NULL,*stuSave2=NULL,stuSave3;
stuSave1=stuHead;
while(stuSave1->next!=NULL)//冒泡排序
{
stuSave2=stuSave1->next;
while(stuSave2->next!=NULL)
{
if(stuSave1->next->score<stuSave2->next->score)//交换成员值,保留原链表指针值
{
stuSave3=*(stuSave1->next);
stuSave1->next->id=stuSave2->next->id;
stuSave1->next->score=stuSave2->next->score;
stuSave2->next->id=stuSave3.id;
stuSave2->next->score=stuSave3.score;
}
stuSave2=stuSave2->next;
}
stuSave1=stuSave1->next;
}
}
voidprintStuInfo(STU*stuHead,intflag)
{
inti=1;
while(stuHead->next!=NULL)
{
if(flag==0)
printf("学生%d,成绩%d ",stuHead->next->id,stuHead->next->score);
else
printf("第%d名,学生%d,成绩%d ",i++,stuHead->next->id,stuHead->next->score);
stuHead=stuHead->next;
}
}
voidinputStuInfo(STU*stuHead)
{
intscore;
STU*stuNew=NULL,*stuTail=NULL;
while(1)
{
printf("输入学生%d的成绩:(输入负数结束输入)",stuIndex);
scanf("%d",&score);
if(score<0)
break;
stuNew=(STU*)malloc(sizeof(STU));
stuNew->score=score;
stuNew->id=stuIndex;
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
stuIndex++;
}
}

㈩ C语言成绩排完了,怎么把名次、学号打出来

你查到那个名次和学号就截图就可以了

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919