十個學生成績排序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