c语言学生成绩排序思想
⑴ 用c语言对学生成绩排序
#include <stdio.h>
int main()
{int a[100],i,j,t,n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
⑵ C语言 学生成绩筛选及排序等问题
#include "stdio.h"
main()
{
float std[30],B,S;
int n=0,bjg=0,i,j,temp;
system("cls");
printf("请输入学生成绩(不多于30个):\n");
do
{
scanf("%f",&std[n]);
n++;
}
while(std[n-1]>=0);
if(n==1)
printf("没有收到哦!");
else
{
n--;
/*不及格成绩筛选*/
for(i=0;i<n;i++)
{
if(std[i]<60)
{
printf("%.2f ",std[i]);
bjg++;
}
}
printf("\n不及格人数为:%d",bjg);
/*排序*/
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
if(std[i]>std[i+1])
{
temp=std[i];std[i]=std[i+1];std[i+1]=temp;
}
}
printf("\n排序结果为:\n");
for(i=0;i<n;i++)
printf("%.2f ",std[i]);
/*最高最低成绩*/
printf("\n最高成绩是: %.2f \n最低成绩是:%.2f",std[n-1],std[0]);
}
}
⑶ c语言程序设计 学生成绩排序系统
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define MAX 200
void dis_menu();
void load_score();
void sort_english();
void sort_math();
void sort_c();
void sort_num();
void display();
typedef struct
{
char name[20];
int num;
float math;
float english;
float c;
}Stu;
Stu stu[MAX];
int num=0;
bool tag=true;
bool Tag=false;
void main()
{
dis_menu();
}
void dis_menu()
{
int i=0;
char ch;
do{
printf("******** *欢迎使用学生成绩排序系统* ********** ******\n");
printf("****** ****输入要进行的操作****** ******* ***** *\n");
printf("**** ******1:按数学成绩排序********** **** ***** **\n");
printf("** ********2: 按英语成绩排序***** * ***** ***\n");
printf("* *********3:按C语言成绩排序***** * ************ **\n");
printf("*** *******4:按学生学号排序****** ***** ***** *\n");
printf("***** *****5:载入学生成绩**** ********* *****\n");
printf("******* ***0:退出系统********* ************** ***\n");
fflush(stdin);
scanf("%d",&i);
switch(i)
{
case 1:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_math();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 2:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_english();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 3:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_c();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 4:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_num();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
case 5:
load_score();
Tag=true;
printf("是否打印载入后的学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
default:
printf("感谢使用本系统!\n");
system("exit");
exit(0);
}
printf("是否继续?(Y or N)\n");
fflush(stdin);
ch=getchar();
system("cls");
}while(ch=='Y'||ch=='y');
}
void load_score()
{
int i;
printf("输入学生人数\n");
scanf("%d",&num);
printf("学生学号 姓名 数学成绩 英语成绩 C语言成绩 \n");
for(i=0;i<MAX&&i<num;i++)
scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,&stu[i].c);
if(i>MAX)
printf("输入人数有误!");
}
void display()
{
int i=0;
if(tag)
{
printf("名次\t学号\t姓名\t数学\t英语\tC语言\n");
for(i=0;i<num;i++)
printf("%d\t%d\t%s\t%.2f\t%.2f\t%.2f\n",i+1,stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);
}
else
{
printf("学号\t姓名\t数学\t英语\tC语言\n");
for(;i<num;i++)
printf("%d\t%s\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);
}
}
void sort_math()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].math<=stu[j].math)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
void sort_english()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].english<=stu[j].english)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
void sort_c()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].c<=stu[j].c)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
void sort_num()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].num>=stu[j].num)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
刚写的,希望对你有用,考试顺利!
⑷ C语言 学生成绩排序
#include <stdio.h>
typedef struct student
{
int pla;
int num;
int score;
}student;
int main()
{
student stu[100];
int n, i, j, tempnum, tempscore, pos;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
[i].num = i + 1;
scanf("%d", &stu[i].score);
}
for (i = 0; i < n; i++)
{
tempscore = stu[i].score;
tempnum = stu[i].num;
pos = i;
for (j = i + 1; j < n; j++)
{
if (tempscore < stu[j].score)
{
tempscore = stu[j].score;
tempnum = stu[j].num;
pos = j;
}
}
stu[pos].num = stu[i].num;
stu[i].num = tempnum;
stu[pos].score = stu[i].score;
stu[i].score = tempscore;
stu[i].pla = i + 1;
if (i > 0 && stu[i].score == stu[i - 1].score)
{
stu[i].pla = stu[i - 1].pla;
}
}
for (i = 0; i < n; i++)
{
printf("%d : %d, %d\n", stu[i].pla, stu[i].num, stu[i].score);
}
return 0;
}
⑸ c语言 学生成绩排序
结构体还没学到,
我说个大概构思,希望能采纳
让第一个分别和第二个,第三个....比较,如果第一个小于后面的
,则互换
for(i
=
0;
i
<
学生个数;
i++)
{
for(j
=
1;
j
<
学生个数;j++)
{
if(成绩[i]
<
成绩[j])
score
=
成绩[i];
成绩[i]
=
成绩[j];
成绩[j]
=
score;
}
}
⑹ C语言的学生成绩排序问题
#include <stdio.h>
#include <stdlib.h>
int main() {
struct student {
int num;
float scores;
};
student *stu = new student;
float insert = 0, temp = 0;
int i = 0;
for (; insert != -1; i++) {
printf("请输入学生成绩(结束输入-1):");
scanf("%f", &insert);
stu[i].num = i + 1;
stu[i].scores = insert;
}
for (int m = 0; m < i - 2; m++) {
for (int n = 0; n < i - 2; n++) {
temp = stu[n].scores;
if (temp < stu[n + 1].scores) {
stu[n].scores = stu[n + 1].scores;
stu[n + 1].scores = temp;
temp = stu[n].num;
stu[n].num = stu[n+1].num;
stu[n+1].num = (int)temp;
}
}
}
for (int j = 0 ; j < i - 1 ; j++){
printf("%s%d%s\t%s%d\t%s%.2f\n","第",j+1,"名:","号数:",stu[j].num,"成绩:",stu[j].scores);
}
system("PAUSE");
return 0;
}
⑺ 用c语言冒泡排序方法,对学生成绩从高到低进行排序。 拜托大神们帮忙
//冒泡排序函数(从高到低)
voidbubble_sort(inta[],intn)
{
inti,j;
inttmp;
for(j<0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]<a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
⑻ 用C语言如何对学生成绩排序
程序冒泡法比较不错
只是不知道你想怎么排序
⑼ C语言冒泡排序法将学生成绩按从小到大顺序排列
#include<stdio.h>
structstudent
{
charname[20];
charsex[20];
intage;
intscore;
};
voidsort(structstudentdata[],intsize)
{
/*冒泡排序*/
intx,y;
structstudenttemp;
for(x=0;x<size-1;x++)
(y=0;y<size-1-x;++y)
if(data[y].score>data[y+1].score)
{
temp=data[y+1];
data[y+1]=data[y];
data[y]=temp;
}
}
intmain()
{
intqty,counter;
structstudentdata[1000];
scanf("%d",&qty);
for(counter=0;counter<qty;++counter)
scanf("%s%s%d%d",data[counter].name,data[counter].sex,&data[counter].age,&data[counter].score);
sort(data,qty);
for(counter=0;counter<qty;++counter)
printf("%s%s%d%d ",data[counter].name,data[counter].sex,data[counter].age,data[counter].score);
return0;
}