c语言怎样在一组数组里输入一个数并排好序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言怎样在一组数组里输入一个数并排好序相关的知识,希望对你有一定的参考价值。

#include int main() int a[4]=12,15,17; int j,t,i; scanf("%d",&i); a[3]=i; for(j=2;j>=0;j-1) if(a[j]>a[3]) t=a[j]; a[j]=a[3]; a[3]=t; if(a[j] break; for(j=0;j<=3;j++) printf("%d\t",a[j]); printf("\n"); 哪里错了?

楼上正解。
楼主发帖能不能排个版?
这是提问的基本素质,太乱了让别人怎么看呢?
另一个好思路:num[n+1]中已有n个排好序的数,插入一个新数
//插入一个数
scanf("%d",&num[n]);
for(
i=0;
i
num[n]
)
tmp=num[i],num[i]=num[n],num[n]=tmp;
printf("%d,",num[i]);
//打印结果

printf("%d\n",num[i]);
楼主想想为什么数组是num[n+1]不是num[n1],数组是从小到大排序吗?
参考技术A 假设你输入14
的话,首先a[3]=14
,
然后a[3]与a[2]比较,此时a[3]
a[i-1]),前提是你的数组是有序的。

在c语言中怎么输入一组数字存储在数组里

从键盘输入100个数(调试程序时可先静态赋初值),并存放到一个数组中。用户输入想要查询的数,从这100个数中用户需要找的数,并把它输出(要求输出详细信息包括:用户输入的数字,在数组中的个数及位置,查询此数所花时间等),若没找到则输出"notfound!"

这是原题,具体的C程序是什么啊?急求!!!!

#define N 100
int main()

int iarray[100];
int num;

for(int i = 0; i < N; i++)

iarray[i] = i*2;


printf("请输入一个数字:");
scanf("%d", &num);

int first = 0;
int last = N-1;
int half = 0;
bool bfind = false;

time_t start, end;
start = time(NULL);

do

half = (first+last)/2;;
if( num == iarray[half])

bfind = true;
break;

else if( num > iarray[half])

first = half + 1;

else

last = half - 1;


while( first <= last );

end = time(NULL);

if(bfind)

printf("num = %d,pos = %d\n",num, half);

else

printf("not found!\n");

printf("endtime = %d, starttime = %d\n", end, start);

printf("使用的时间为:%.16f\n", (double)(end - start)/CLOCKS_PER_SEC);

system("pause");
return 1;
参考技术A #define
N
100
int
main()

int
iarray[100];
int
num;
for(int
i
=
0;
i
<
N;
i++)

iarray[i]
=
i*2;

printf("请输入一个数字:");
scanf("%d",
&num);
int
first
=
0;
int
last
=
N-1;
int
half
=
0;
bool
bfind
=
false;
time_t
start,
end;
start
=
time(NULL);
do

half
=
(first+last)/2;;
if(
num
==
iarray[half])

bfind
=
true;
break;

else
if(
num
>
iarray[half])

first
=
half
+
1;

else

last
=
half
-
1;


while(
first
<=
last
);
end
=
time(NULL);
if(bfind)

printf("num
=
%d,pos
=
%d\n",num,
half);

else

printf("not
found!\n");

printf("endtime
=
%d,
starttime
=
%d\n",
end,
start);
printf("使用的时间为:%.16f\n",
(double)(end
-
start)/CLOCKS_PER_SEC);
system("pause");
return
1;

以上是关于c语言怎样在一组数组里输入一个数并排好序的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中,将一个数插入一个数组中的程序怎么写?

在c语言中怎么输入一组数字存储在数组里

C语言求助,把一个数插入到一个已排好序的数组中

有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序

C语言里删除数组怎么删除

C语言试题130之有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中