期末考试临近尾声,请帮老师们编写一段代码,对n位学生的课程成绩(整型数据)进行升序排列并输出。
输入格式:
第一行为n (0 < n <= 50),表示班里的学生数目; 第二行n个数,表示n个学生的成绩 ,成绩为一个不大于100的非负整数。
输出格式:
把成绩按分数从低到高的顺序进行排序并输出,每个成绩后有一个空格。
输入样例:
6
70 63 91 71 6 73
结尾无空行
输出样例:
6 63 70 71 73 91
结尾无空行期末考试临近尾声,请帮老师们编写一段代码,对n位学生的课程成绩(整型数据)进行升序排列并输出。
输入格式:
第一行为n (0 < n <= 50),表示班里的学生数目; 第二行n个数,表示n个学生的成绩 ,成绩为一个不大于100的非负整数。
输出格式:
把成绩按分数从低到高的顺序进行排序并输出,每个成绩后有一个空格。
输入样例:
6
70 63 91 71 6 73
结尾无空行
输出样例:
6 63 70 71 73 91
结尾无空行
你题目的解答代码如下:
#include <stdio.h>
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)//n个数,总共需要进行n-1次
{ //每次会将最大(升序)或最小(降序)放到最后面
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])//每次冒泡,进行交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
void main()
{
int i,n;
scanf("%d", &n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
int x;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
#include <stdio.h>
#define N 50
void input(int *a, int n)
{
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
}
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
void sort(int *a, int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j])
swap(&a[i], &a[j]);
}
void print(int *a, int n)
{
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
}
int main()
{
int a[N];
int n;
scanf("%d", &n);
input(a, n);
sort(a, n);
print(a, n);
return 0;
}
#include<stdio.h>
void AscendingOrder(int n, int score[])
{
int j = 0;
for (j = 0; j < n - 1;j++)
{
int i = 0;
for (i = 0; i < n - 1 - j; i++)
{
int num = 0;
if (score[i] > score[i + 1])
{
num = score[i];
score[i] = score[i + 1];
score[i + 1] = num;
}
}
}
}
int main()
{
int n = 0; int score[50] = { 0 };
scanf("%d", &n);
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d",&score[i]);
}
AscendingOrder(n, score);
for (i = 0; i < n-1; i++)
{
printf("%d ", score[i]);
}
printf("%d\n", score[n-1]);
return 0;
}