各位达人帮帮忙!!!急!!!一段C语言的题目!!!答案要能够运行的!!!最好有注解!!!

要能够运行的答案!!!注意题目要求!!!不要太难的方法!!!最好能给解释!!!100分!!!先到先得!!!答的好有加分!!!最晚时间明天中午之前啊!!!---------... 要能够运行的答案!!!注意题目要求!!!不要太难的方法!!!最好能给解释!!!

100分!!!先到先得!!!答的好有加分!!!

最晚时间明天中午之前啊!!!

-------------------------------------------------------

a 编写一个程序,输入10个双精度型数字到一个名为raw的数组中。在10个有用户输入的数字被输入到数组后,你的程序应该循环经历raw数组10次。在每次通过这个数组期间,你的程序一概选择raw数组中的最小数值,并把这个被选择的数值放在位于一个名为stored的数组中的下一个变量中。因此,当你的程序完成时,stored数组应该包含raw数组中按照从小到大排列顺序的数值。(确保在每次经历一个很高的数字期间重新设置被选取的最小数值,以使它不再被选择。你将需要在第一个for循环内的另一个for循环,以便确定每次经历的最小数值)

b 在a中排序一个数组中的数值的方法是非常低效率的。你能够确定为什么吗?在一个数组中排序数字的一个更好的方法是什么?
展开
 我来答
friday_collin
2008-12-14 · TA获得超过416个赞
知道小有建树答主
回答量:466
采纳率:100%
帮助的人:366万
展开全部
/*编写一个程序,输入10个双精度型数字到一个名为raw的数组中。
在10个有用户输入的数字被输入到数组后,你的程序应该循环经历
raw数组10次。在每次通过这个数组期间,你的程序一概选择raw数
组中的最小数值,并把这个被选择的数值放在位于一个名为stored的
数组中的下一个变量中。因此,当你的程序完成时,stored数组应该
包含raw数组中按照从小到大排列顺序的数值。(确保在每次经历一个
很高的数字期间重新设置被选取的最小数值,以使它不再被选择。你
将需要在第一个for循环内的另一个for循环,以便确定每次经历的最小数值)*/
#include"stdio.h"
main()
{
double row[10],stored[10],min;
int i,j=0,k,mini,flag=1;
printf("input array:\n");
for(i=0;i<10;i++) //输入数组元素
scanf("%lf",&row[i]);

while(flag)
{

min=row[0];
mini=0;

for(i=0;i<10-j;i++) //每次循环都从row数组中找最小的值赋给min
if(min>row[i])
{
min=row[i];
mini=i; //最小值的下标赋给mini
}
stored[j++]=min; //将min赋给数组stored

if(j==10) //如果stored数组满就让flag为0 退出while语句。
{
flag=0;
break;
}

for(k=mini;k<10-j;k++) //删除此次执行中row中的最小值,即让从他往后的值将其覆盖。
row[k]=row[k+1];

}
for(j=0;j<10;j++)
printf("%lf ",stored[j]); //输出stored数组
}

问题b:因为每次都要从数组中查找最小元素,而且还要处理此次排序的最小元素,时间复杂度较高,
最简单的解决办法就是采用冒泡排序。
a1012756477
2008-12-13
知道答主
回答量:51
采纳率:0%
帮助的人:0
展开全部
大概要多久可以参加日语1级考试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式