初始化数组int a[10]={3,6,1,0,5,2,7,8,3,4},从键盘输入一个整数n作为中轴数据,将数组中所有<n的数据排列在n的左侧,所有>n的数据排列在n的右侧,输出分组后的结果;如果所输入的n值在数组中不存在则输出"Wrong number!".
说明:请只提供需要补全的代码部分,不需要提供完整程序。可根据需要定义其他变量。
【输入形式】
【输出形式】
【样例输入】
5
【样例输出】
3 1 0 2 3 4 5 6 7 8
初始化数组int a[10]={3,6,1,0,5,2,7,8,3,4},从键盘输入一个整数n作为中轴数据,将数组中所有<n的数据排列在n的左侧,所有>n的数据排列在n的右侧,输出分组后的结果;如果所输入的n值在数组中不存在则输出"Wrong number!".
说明:请只提供需要补全的代码部分,不需要提供完整程序。可根据需要定义其他变量。
【输入形式】
【输出形式】
【样例输入】
5
【样例输出】
3 1 0 2 3 4 5 6 7 8
这一题我没有想到更简便的方法,就本题例子而言写一个程序问题不大,本题和普通的排序还有所不同,但是如果更普遍一点就要考虑的更多一点
,我想出题人给了两个3就是这个用意
#include<stdio.h>
int main()
{
int a[10]={3,6,1,0,5,2,7,8,3,4};
int n;
scanf("%d",&n);
if(n<0||n>=9)
printf("Wrong number!");//a[10]中数组元素从0到9;故0到9之外的都“Wrong number!”如果是不确定数组,循环确认是否是成员数组
else//通过三层for打印
{
for(int i=0;i<10;i++){//第一层for打印比n小的
if(a[i]<n){
printf("%d ",a[i]);
}
}
for(int j=0;j<10;j++){//第二层for打印等于的
if(a[j]==n)
printf("%d ",a[j]);
}
for(int k=0;k<10;k++){//第三层for打印比n大的
if(a[k]>n)
printf("%d ",a[k]);
}
}
return 0;
}
本来我想再定义一个数组的但是依旧避免不了多个循环,干脆就三层for依次打印