c语言成绩排序
⑴ 用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 << "名学生的成绩;" << endl;
cin >> s[i];
}
for (i = 0; i<10; i++)
{
for (j = 0; j<9 - i; j++)
if (s[j]<s[j + 1])
{
t = s[j + 1];
s[j + 1] = s[j];
s[j] = t;
}
}
cout << "成绩由高到低为;";
for (i = 0; i<10; i++)
cout << s[i]<<" " ;
}
以下为效果图
⑵ 成绩排序c语言数组
#include <stdio.h>
int main()
{ int n,i,j,t,a[1000];
scanf("%d",&n); //有n个学歼圆派生
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=0; i<n-1; i++) //共氏贺进行n-1轮
{ for(j=0; j<n-1-i; j++) //j的范腔态围:0~n-1-i
if(a[j]<a[j+1]) //比较相邻两数:a[j]、a[j+1],如不对就交换
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0; i<n; i++)printf("%4d",a[i]);
printf("\n");
return 0;
}
⑶ C语言怎么进行成绩的排序
#include<stdio.h>
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语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩
这题可以利大枯孝用冒泡排序法
题目不难
#include <stdio.h>
#define SIZE 11
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{ int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{ if(a[i] < a[i + 1])
{ 败卜 temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int main()
{ int number[SIZE] = {0};
int i;
for(i=0;i<10;i++)
scanf("%d",&number[i]);
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
{ printf("%d ", number[i]); }
return 0;
}
运行过程
除了冒泡排序法,还有选择排序法,快速排滚稿序法,还请题主在大学好好学习哦
⑸ 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语言 学生成绩排序 按学生的序号输入 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语言成绩,并从大到小排序
编写程式输出十个同学C语言成绩,并从大到小排序
#include<stdio.h>int main(){ double a[10]; int i,j; double tem; bool bchange = false; printf("请输入10位同学的C语言成绩,用空格隔开:\n"); for(i = 0;i<10;i++) { scanf("%lf",&a[i]); } Bubble for(i=1;i<10;i++) { bchange = false; for(j=0;j<10-i;j++) { if(a[j]<a[j+1]) { tem = a[j]; a[j] = a[j+1]; a[j+1] = tem; bchange = true; } } if(!bchange)not change break; } printf("10位同学的C语言成绩由高到低是:\n"); for(i = 0;i<10;i++) { printf("%5.1lf",a[i]); } printf("枯春\n"); return 0;}
# include<stdio.h>
void main()
{
float a[10],k;
int i,j;
for(i=0;i<=9;i++)
scanf("%f",&a[i]);
for(i=0;i<=9;i++)
for(j=i+1;j<=9;j++)
if (a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<=9;i++)
printf("%f ",a[i]);
}
用C语言编写“给十个数从大到小排序”
气泡排序法:
void rank1(int a[],int n)
{int i,j,t;
for (i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
if (a[j-1]>a[j]) {t=a[j-1];a[j-1]=a[j];a[j]=t;}
};
}
优化后的程式:
void rank1(int a[],int n)
{int i,j,t,flag;
for (i=0;i<n-1;i++)
{flag=0;
for(j=n-1;j>i;j--)
if (a[j-1]>a[j]) {t=a[j-1];a[j-1]=a[j];a[j]=t;flag=1;}
if (flag==0) break;
}
}
求解,用C语言编写一个程式,随机生成100个数,并从大到小排序
#include "stdafx.h"vc++6.0加上这一行.#include "stdio.h"春败圆#include "time.h"#include "stdlib.h"int main(void){ int nDec[100],i,j,k; srand((unsigned)time(NULL)); for(i=0;i<100;nDec[i++]=rand()); for(i=0;i<100;i++){ for(k=i,j=k+1;j<100;j++) if(nDec[k]<nDec[j]) k=j; if(i!=k){ j=nDec[i]; nDec[i]=nDec[k]; nDec[k]=j; } printf("%d ",nDec[i]); } printf("扒塌\n"); return 0;}
C语言 编写程式,从键盘输入10个数据,按从大到小的顺序输出
main()
{
int a[10], i, j, k;
printf("输入10个整数: ");
for (i = 0; i < 10; i++)
{
scanf("%d", a + i);
for (j = i; j > 0; j--)
if (a[j-1] >= a[j])
break;
else { k = a[j-1]; a[j-1] = a[j]; a[j] = k; }
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
}
c语言要求:编写程式将十个元素的个数组a[10]从大到小打印输出…
#include <stdio.h>
int main()
{
int a[10];
int i, j;
int t;
for (i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
for (j = 0; j < 9; j++)
for(i = 0; i < 9 - j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
c语言程式设计 输入50个字符,按从大到小排序输出
输入一行字串,排序前50个,
#include<stdio.h>
#include<string.h>
int main()
{
char c;
int i,j;
char buf[50],temp;
printf("input 50 numbers\n");
for(i=0;i<50;i++)
{
if((c=getchar())==EOF)
{
printf("input err\n");
return -1;
}
buf[i]=c;
}
for(i=0;i<49;i++)
{
for(j=0;j<49-i;j++)
{
if(buf[j]<buf[j+1])
{
temp=buf[j];
buf[j]=buf[j+1];
buf[j+1]=temp;
}
}
}
for(i=0;i<50;i++)
putchar(buf[i]);
printf("\n");
return 0;
}
气泡排序,选择排序,快速排序
c语言编写,计算一矩阵的特征值,按从大到小排序输出。
#include<stdio.h>
int main()
{
int a[3][5],i,j,k,temp;
通过读取给3×5的阵列赋值
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
一行一行的判断
for(k=0;k<3;k++)
{
标准冒泡法
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[k][i] < a[k][i + 1])
{
temp = a[k][i];
a[k][i] = a[k][i + 1];
a[k][i + 1] = temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
c语言 (排序算法)随机输入10个整数,将其从大到小排序并输出。
#include<stdio.h>void main(){ int i,a[10]; void paixu(int s[10],int n); printf("请输入10个数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } paixu(a,10); for(i=0;i<10;i++) printf("%d ",a[i] ); printf("\n");}void paixu(int s[10],int n){ int i,j,t=0; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } }}
⑻ c语言成绩排序,做完微信红包
#include"stdio.h"
#include<stdlib.h>
#include<string.h>
#include"time.h"
structabcd{
charID[11],name[17];
ints1,s2,s3,s4,s5;
doubleave;
structabcd*next;
};
voidinp(structabcd(*p)[45]){
inti,j,k,t;
char搜蔽id[11]="0000000000";
for(i=0;i<4;i++){
for(j=0;j<45;j++){
if(++id[9]>'9')
for(k=9;k>0;k--)
id[k]-=10,id[k-1]++;
strcpy(p[i][j].ID,id);
for(t=0,k=rand()%16;k;k--)
p[i][j].name[t++]=rand()%26+'A';
p[i][j].name[t]='