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

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

这是原题,具体的C程序是什么啊?急求!!!!
展开
 我来答
xjc_cd
推荐于2018-03-29 · TA获得超过413个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:446万
展开全部
#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;
}
创作者hZ5youTqrH
2019-08-13 · TA获得超过3596个赞
知道大有可为答主
回答量:3124
采纳率:31%
帮助的人:225万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式