输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数 怎么不输出交换后的数组

zhiyuan_beautiful 2015-05-28 04:20:42
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[10];
int min,i,m,n;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
min=abs(a[0]);
n=0;
for(i=1;i<10;i++)
{
if(abs(a[i])<min)
min=abs(a[i]);
n=i;
}
m=a[n];
a[n]=a[9];
a[9]=m;
for(i=0;i<10;i++)
{
printf(" %d",a[i]);
}

return 0;
}
...全文
1223 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2015-05-29
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
m=a[n]; a[n]=a[8]; a[8]=m; “多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
赵老师,引个题外话,http://bbs.csdn.net/topics/391044546 以前在c/c++论坛经常看到你,转了java之后,现在有回c/c++板块。诚心请教java转mfc问题!
pengzhixi 2015-05-29
  • 打赏
  • 举报
回复
for(i=1;i<10;i++) { if(abs(a[i])<min) min=abs(a[i]); n=i; } 你这个if后面的两句代码是不是要{}呢
fly_dragon_fly 2015-05-29
  • 打赏
  • 举报
回复
楼上看错了吧,程序没有差1的问题,是if(abs(a[i])<min)后面没有加{},导致n每次都被赋值,或者改为 if(abs(a[i])<min) min=abs(a[i]),n=i;
苏叔叔 2015-05-29
  • 打赏
  • 举报
回复
为什么都不好好贴代码呢?

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a[10];
	int min, i, m, n;
	for (i = 0; i < 10; i++) scanf("%d", &a[i]);
	min = abs(a[0]);
	n = 0;
	for (i = 1; i < 10; i++)
	{
		if (abs(a[i]) < min)
		{
			min = abs(a[i]);
			n = i;
		}
	}
	m = a[n];
	a[n] = a[9];
	a[9] = m;
	for (i = 0; i < 10; i++) printf(" %d", a[i]);
	return 0;
}
// 1 2 3 0 4 5 6 7 8 9
// 1 2 3 9 4 5 6 7 8 0
赵4老师 2015-05-28
  • 打赏
  • 举报
回复
m=a[n]; a[n]=a[8]; a[8]=m; “多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,搬手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
赵4老师 2015-05-28
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

70,020

社区成员

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

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