求解一维数组习题

superflb 2010-03-18 10:06:27
编写一个程序,输入10个双精度数字到raw数组中。在十个数字被输入数组后,你的程序应该循环经历raw数组10次,每次通过这个数组期间,你的程序应该选择数组中最小值,把这个被选择的数值放在sorted数组的下一个变量中,当你的程序完成时sorted数组包含raw数组从小到大的数值。(提示:确保在每次经历一个很好大的数字期间重新设置被选择的最小值,使他不再被选择。你将需要在第一个for循环内的另一个for循环,以便确定每次经历的最小值。)


出自 标准c语言基础教程 第4版
...全文
272 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
superflb 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shihuaicheng 的回复:]

...每次经历一个很好大的数字期间...
什么意思啊?
下面的代码可以
C/C++ code

int main()
{
int raw[10];
//...输入数据的语句
int stored[10];
//记录当前最小值的位置
int pos = 0;
int min = raw[0];
for(int i = 0; i < 1……
[/Quote]
好吧,我承认我没看懂,我自己写了一个但得不出正确结果,问题在哪呢???
int main()
{
int raw[10],sorted[10];
int i,j,min;
for(i=0;i<10;i++)
scanf("%d",&raw[i]);
for(i=0;i<10;i++)
{
min=raw[i];
for(i=j;j<10;j++)
{
if(raw[j]<min)
min=raw[j];
}
sorted[i]=min;
}
for(i=0;i<10;i++)
printf("%d",sorted[i]);
printf("\n");
for(i=0;i<10;i++)
printf("%d",raw[i]);
return 0;
}
嘎文 2010-03-19
  • 打赏
  • 举报
回复
...每次经历一个很好大的数字期间...
什么意思啊?
下面的代码可以

int main()
{
int raw[10];
//...输入数据的语句
int stored[10];
//记录当前最小值的位置
int pos = 0;
int min = raw[0];
for(int i = 0; i < 10; i++)
{
for( int j = 0; j < 10 - i; j++) //每次少比较一个
{
if(min>raw[j]) min = raw[j];//替换当前最小值
pos = j;
}
//将当前数组的最后一个值放到最小值的位置
//以后不再比较最后一个值,即便有重复出现的值也不影响
raw[j] = raw[9-i];
stored[i] = min;
}
}
eTouX 2010-03-19
  • 打赏
  • 举报
回复
楼上写的很清楚,这些简单算法建议楼主自己思考下
yang228 2010-03-19
  • 打赏
  • 举报
回复
看看这是不是你要的?
int main()
{
double maxValue = 4503599627370495;
double raw[10] = {0};
double sorted[10] = {0};
double min;
int pos;
int i, j;

for (i = 0; i < 10; i++)
{
scanf("%lf", &raw[i]);
}

min = raw[0];
pos = 0;

for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (raw[j] < min)
{
min = raw[j];
pos = j;
}
}

sorted[i] = min;
raw[pos] = maxValue;
}

for (i = 0; i < 10; i++)
{
printf("%lf\n", sorted[i]);
}
return 0;
}
wade_2003 2010-03-19
  • 打赏
  • 举报
回复
这是一个数组排序的题?

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧