求解决一个问题
目前困扰到我的问题是 多行,表示插入的X(不确定有几个,最多100个X), 不知道怎么来写不确定输入个数字的情况下让代码正常运行。大神就写这个代码行了,感谢问题描述
程序开始请你给一组待排序数据进行小到大排序。接下来程序会输入多个X请你将X插入后的数据重新进行小到大的序
输入格式
第一行N(N<=20000)
第二行N个无序数据(30000以内)
多行,表示插入的X(不确定有几个,最多100个X)
输出格式
每个X插入后相应的小到大序列
样例输入
一个满足题目要求的输入范例。
例:
3
10 30 26
5
18
样例输出
与上面的样例输入对应的输出。
5 10 26 30
5 10 18 26 30 #include <stdio.h>
int main(void)
{
int d , i , j , k , n , t ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%d" , & d) ;
for(i = 0 ; i < n - 1 ; i ++) {
for(j = i + 1 ; j && d < d ; j --) {
t = d ;
d = d ;
d = t ;
}
}
for(;;) {
if(scanf("%d" , & t) == 1) {
for(i = 0 ; i < n && d < t ; i ++) ;
if(i < n) for(k = 0 ; k < n - i ; k ++) d = d ;
d = t ;
n ++ ;
} else {
break ;
}
}
for(i = 0 ; i < n ; i ++) {
if(i) printf(" ") ;
printf("%d" , d) ;
}
printf("\n") ;
}
编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
3
10 30 26
5
18
a
5 10 18 26 30
D:\0002.Exercise\C> jackz007 发表于 2021-11-9 15:47
编译、运行实况:
大佬,我在你的代码基础上修改了一下,我是把数据存放到数组里,再对每个插入数字进行排序并输出,也就是插入一个输出一行,插入多个就输出多行。不知道我这个为什么只能输出一行。
#include<stdio.h>
#define N 20001
#define M 101
int num, ins;
int main() {
int n, i, j;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &num);
}
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (num > num) {
int temp = num;
num = num;
num = temp;
}
}
}
int m;
for (i = 0;; i++) { // 存放数字
if (scanf("%d", &m) == 1)
ins = m;
else
break;
}
int k, len = i;
for (i = 0; i <= len; i++) {
for (j = 0; ins > num && j < n; j++); // 找到可插入的位置
if (j < n)
for (k = n - 1; k != j - 1; k--) { // num开始的数字后移
num = num;
}
num = ins;
n++;
for (i = 0; i < n; i++) {
printf("%d ", num);
}
printf("\n");
}
return 0;
} jackz007 发表于 2021-11-9 15:47
编译、运行实况:
比如这样
3
10 30 26
5
18
a
输出
5 10 26 30
5 10 18 26 30
jackz007 发表于 2021-11-9 15:47
编译、运行实况:
知道问题了,谢谢大佬
页:
[1]