十个学生成绩排序c
A. c语言程序 输入十个学生成绩 从高到低如何排列
#include"stdio.h"
sort(int a[],int n)//int a[]好像抄有点问题这个有点记不清。不过用指针肯定没问题
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
int i,int a[];//a[]要定义长度,要么用指针。然后根据自己要的长度申请空间
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(int a[],int 10)//传送有问题,参数实参不用申明类型。你应该是想数组用首地址参数用 a,10就行
for(i=n-1,i>=0,i--)//n主组函数还没有定义用int i=9
printf("%d",a[i]);
}
这个程序怎么修改
B. 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. c语言作业.使用冒泡法,输入10个学生5门课程的成绩并从高到低进行排序
昨天搞了很长时间,虽然算法相对简单但写具体的语句却不容易,最终还是写出来了,我的远、源程序如下:
#include<stdio.h>
#define N 10
typedef struct
{
float a,b,c,d,e;
}student;
student stu[N+1];
void sorted(student *a)
{
int i,j,k,n;
for(i=0;i<N+1;i++)
for(j=0;j<N-i+1;j++)
{
if(a[j].a<a[j+1].a)
{
k=a[j].a;
a[j].a=a[j+1].a;
a[j+1].a=k;
}
if(a[j].b<a[j+1].b)
{
k=a[j].b;
a[j].b=a[j+1].b;
a[j+1].b=k;
}
if(a[j].c<a[j+1].c)
{
k=a[j].c;
a[j].c=a[j+1].c;
a[j+1].c=k;
}
if(a[j].d<a[j+1].d)
{
k=a[j].d;
a[j].d=a[j+1].d;
a[j+1].d=k;
}
if(a[j].e<a[j+1].e)
{
k=a[j].e;
a[j].e=a[j+1].e;
a[j+1].e=k;
}
}
}
main()
{
int i;
printf("\n\tplease input students's mark:\n\n");
for(i=0;i<N;i++)
scanf("%f %f %f %f %f ",&stu[i].a,&stu[i].b,&stu[i].c,&stu[i].d ,&stu[i].e);
printf("\tthe original transcript:\n\n");
printf("\t课程1\t\t课程2\t\t课程3\t\t课程4\t\t课程5\t\n");
for(i=0;i<N;i++)
{
printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i].a,stu[i].b,stu[i].c,stu[i].d ,stu[i].e);
}
printf("\n\tplease input other students's mark:\n");
scanf("%f%f%f%f%f",&stu[N].a,&stu[N].b,&stu[N].c,&stu[N].d,&stu[N].e);
sorted(stu);
printf("\n\tthe sortde transcript is:\n\n ");
printf("\t课程1\t\t课程2\t\t课程3\t\t课程4\t\t课程5\t\n");
for(i=0;i<N+1;i++)
{
printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i].a,stu[i].b,stu[i].c,stu[i].d ,stu[i].e);
}
printf("\tAfter the output sequence transcript changed:\n\n");
printf("\t课程1\t\t课程2\t\t课程3\t\t课程4\t\t课程5\t\n");
for(i=N;i>=0;i--)
{
printf("\t%f\t%f\t%f\t%f\t%f\n",stu[i].a,stu[i].b,stu[i].c,stu[i].d ,stu[i].e);
}
}
你可以先上机运行一下,看是否符合你的要求,不行你说我会再改的。
注:其中的宏定义N这里是指所要输入的学生的个数。如果你觉得10个学生的信息太多也可以把N 的值取小一点。输入时注意第一次要输入5*N+1个数据。要不然就不能输入other
studedts‘s mark
D. 用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]<<" " ;
}
以下为效果图
E. 急急急!!!编写一个程序,输入10个学生成绩,该程序输入10学生的C语言平时成绩,对输入的数据进行排序
#include<stdio.h>
voidavg(floata[],intn)
{
floataverage=0.0;
inti;
for(i=0;i<10;i++)
{
average+=a[i];
}
average=average/10;
printf("平均成绩是:%.1f ",average);
}
voidsort(floata[],intn)
{
inti,j;
floattemp;
printf("排序前: ");
for(i=0;i<n;i++)
printf("%.1f ",a[i]);
for(i=0;i<n-1;i++)//冒泡法
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("排序后: ");
for(i=0;i<n;i++)
printf("%.1f ",a[i]);
}
voidmain()
{
floata[10];
inti;
printf("请输入成绩: ");
for(i=0;i<10;i++)
{
printf("第%d个学生成绩:",i+1);
scanf("%f",&a[i]);
}
avg(a,10);
sort(a,10);
}
简单实现,没有什么含金量
F. 用C语言编程输入十个的学生成绩,程序要求(1)成绩呈非升序排列,(2)输入A后会输出该学生成绩的非
就是简单的排序程序嘛。我给你一些排序算法和超照算法,任选一个就行了,
// 冒泡排序
void BuddleSort(int array[], int n) {
int i, j;
bool flag = true;
for (i = 1; flag && i < n; i++) {
flag = false;
for (j = 0; j < n - i; j++) {
if (array[j] > array[ j + 1]) {
flag = true;
int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }
// 选择法
void SelectSort(int array[], int n) {
int i, j, k;
for (i = 0; i < n; i++) {
k = i;
for (j = i + 1; j < n; j++) {
if (array[j] < array[k]) {
k = j; } }
if (k != i) {
int temp = array[k]; array[k] = array[i]; array[i] = temp; } } }
// 插入排序
void InsertSort(int array[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = array[i]; j = i - 1;
while (j >= 0 && array[j] > temp) {
array[j + 1] = array[j]; j--; }
array[j + 1] = temp; } }
//折半查找是基于已经排好序的查找方法,你自己去体会吧
/*******************************
实现折半查找
在a[m..n]里面查找元素x
并返回查找到的元素的下标,否则返回-1
*******************************/
#define varible int
#define fmt "%d"
int binary_search(varible *s,int m,int n,varible x)
{
int half=0;
if (m<n)
{
half=(m+n)/2;
if (x==s[half])
{
printf(fmt" found\n",x);
return half;
}
else if (x<s[half])
{
return binary_search(s,m,half-1,x);
}
else
{
return binary_search(s,half+1,n,x);
}
}
else if(s[n]==x)
{
printf(fmt" found\n",x);
return n;
}
else
{
printf(fmt"not found\n",x);
return -1;
}
}
全是从自己以前做的试验里面截取的,凑合着看吧
G. 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]<<" " ;
}
以下为效果图
H. 编写程序输出十个同学C语言成绩,并从大到小排序
#include<stdio.h>
intmain()
{
doublea[10];
inti,j;
doubletem;
boolbchange=false;
printf("请输入10位同学的C语言成绩,用空格隔开: ");
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)//notchange
break;
}
printf("10位同学的C语言成绩由高到低是: ");
for(i=0;i<10;i++)
{
printf("%5.1lf",a[i]);
}
printf(" ");
return0;
}
I. c 语言中将10名同学的成绩按从低到高排序
你的个成绩放入数组例如
然后调用下面的函数,入参就是数组,我这是C#,变量定义方式和你不太一样,但是你应该能看明白
int[] 就是我这里定义数组
#region 冒泡排序( 100k无序0-100k 21秒 )
void mppx冒泡排序(int[] pxsz)
{
for (int j = 1; j < pxsz.Length; j++)
{
for (int i = 0; i < pxsz.Length - j; i++)
{
if (pxsz[i] > pxsz[i + 1])
{
int temp = pxsz[i + 1];
pxsz[i + 1] = pxsz[i];
pxsz[i] = temp;
}
}
}
}
#endregion