7-9 sdut-C语言实验- 排序
分数 16
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
给你N(N<=100)个数,请你按照从小到大的顺序输出。
输入格式:
输入数据第一行是一个正整数N,第二行有N个整数。
输出格式:
输出一行,从小到大输出这N个数,中间用空格隔开。
第九题和第十题基本上一样,都是一个思想。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int a[105];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)
{
for(int j=n;j>i;j--)
{
if(a[j]<a[j-1])
{
int t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
}
for(int i=1;i<=n;i++)
{
printf("%d",a[i]);
if(i<n)
{
printf(" ");
}
}
return 0;
}
7-10 sdut-C语言实验-排序问题
分数 15
全屏浏览题目
切换布局
作者 马新娟
单位 山东理工大学
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
输入格式:
输入数据有一行,包含10个整数,用空格分开。
输出格式:
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[15],b[99];
int n=10;
for(int i=1;i<11;i++)
{
scanf("%d",&a[i]);
b[i]=i;
}
for(int i=1;i<11;i++)
{
for(int j=10;j>i;j--)
{
if(a[j]<a[j-1])
{
int t=a[j];
a[j]=a[j-1];
a[j-1]=t;
t=b[j];
b[j]=b[j-1];
b[j-1]=t;
}
}
}
for(int i=1;i<11;i++)
{
printf("%d",a[i]);
if(i<10)
printf(" ");
}
printf("\n");
for(int i=1;i<11;i++)
{
printf("%d",b[i]);
if(i<10)
printf(" ");
}
return 0;
}