C语言:各位还有更简单的方法吗?从键盘上输入任意10个数,将其按从小到大顺序排列
本帖最后由 划句顾 于 2021-6-12 13:54 编辑/*****************************************************************************************************************
@time: 2021/6/11
@author:LaoGu
@fuction:从键盘上输入任意10个数,将其按从小到大顺序排列;再输入一个数,将该数插入到数列中,不改变数列的排序规律。
*****************************************************************************************************************/
#include<stdio.h>
#define N 10
int main()
{
void sort(int *b,int n); //声明排序函数
void insert(int l,int *a,int n);//声明插入函数
int a,*p=a,x,l;
printf("Please input 10 numbers:");
for(x=0;x<10;x++)
{
scanf("%d",p++);
}
p = a;
printf("Output asorted array:");
for(x=0;x<10;x++)
{
printf("%d",*p);
p++;
}
p = a;
printf("\n");
sort(p,N);//调用函数
printf("Output asorted array:");
for(p = a,x=0;x<10;x++)
{
printf("%d",*p);
p++;
}
printf("\n");
//插入一个新的数字
printf("Please enter one new number:");
scanf("%d",&l);
p = a;
insert(l,p,N);
printf("Output a new sorted array :");
for(p = a,x=0;x<11;x++)
{
printf("%d",*p);
p++;
}
printf("\n");
return 0;
}
//排序函数
void sort(int *b,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k = i;
for(j=i+1;j<n;j++)
{
if(*(b+j)<*(b+k))
{
k = j;
}
if(k != i)
{
t = *(b+k);
*(b+k)=*(b+i);
*(b+i)=t;
}
}
}
}
//插入函数
void insert(int l,int *a,int n)
{
int i,j;
for(i=0;i<n;i++)
{
if(*(a+i)>l)
break;
}
for(j=n-1;j>=i;j--)
*(a+j+1)=*(a+j);
*(a+i) = l;
}
#include<stdio.h>
#include<algorithm>
int main(){
int a;
int i,t;
for(i=0;i<10;i++){
scanf("%d",&a);
}
sort(a+0,a+i);
scanf("%d",&a[++i]);
sort(a+0,a+i);
for(i=0;i<11;i++){
printf("%d",a);
}
return 0;
} xiaosi4081 发表于 2021-6-12 13:56
我看不懂{:10_262:},程序运行不出来 。。。 划句顾 发表于 2021-6-12 22:47
我看不懂,程序运行不出来
我是用c++的:{:10_269:}
#include<cstdio>
#include<algorithm>
int main(){
int a;
int i,t;
for(i=0;i<10;i++){
scanf("%d",&a);
}
sort(a+0,a+i);
scanf("%d",&a[++i]);
sort(a+0,a+i);
for(i=0;i<11;i++){
printf("%d",a);
}
return 0;
} 看不懂 {:10_272:} 要是要排序的话,可以先放入一个数组,然后用qsort函数{:10_282:} {:10_279:} {:10_249:}{:10_249:} 向大佬学习
xiaosi4081 发表于 2021-6-15 18:09
我是用c++的:
我好好看看{:10_272:}。 学习 币来! 初学者 看不懂。。。 {:10_261:} {:10_256:}{:10_256:} c xiaosi4081 发表于 2021-6-15 18:09
我是用c++的:
e大同小异 划句顾 发表于 2021-6-23 08:53
我好好看看。
呃呃呃c++
表示编译器为Dev c++
为什么 运不出来
页:
[1]