C语言一个已排序数组a[10]={10,20,30,40,50,60,70,80,90},现输入一个数,要求按原来的规律将它插入数组中

#include<stdio.h>main(){inti,j,t,a[10]={10,20,30,40,50,60,70,80,90};printf("请输入一个数");... #include<stdio.h>
main()
{
int i,j,t,a[10]={10,20,30,40,50,60,70,80,90};
printf("请输入一个数");
scanf("%d",&a[9]);
for(i=0;i<9;i++)
if(a[9]<a[i])
for(j=8;j>=i;j--)
{
t=a[9];
a[j+1]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
这是我写的,有个问题
比如输入12,输入的结果是10 90 20 30 40 50 60 70 80 90
输入22, 10 20 90 30 40 50 60 70 80 90
可见,输入的数能找见自己应处于的位置,但是输出的结果不是这个输入的数了,而是定值90,请问高手这是怎么回事。。。。?
展开
 我来答
pp龙飞pp
推荐于2017-12-15 · 超过12用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:41.4万
展开全部
#include<stdio.h>
main()
{
int i,j,t,a[10]={10,20,30,40,50,60,70,80,90};
printf("请输入一个数:\n");
scanf("%d",&a[9]);
for(i=0;i<9;i++)
if(a[9]<a[i])
{
t=a[9];
for(j=8;j>=i;j--)
{
a[j+1]=a[j];
a[j]=t;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
改正了。认真看看那两个for语句吧 。错处:t=a[9];放错位置。
若还不明就向我追问吧,我会详细回答。先让你自行解决一下吧!
百度网友40fc6daa7
2011-06-15 · 超过15用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:35.6万
展开全部
因为你的a[9]经过第二轮循环保存的就不再是12或者22啦!

看这三句话:
t=a[9];
a[j+1]=a[j];
a[j]=t;

你把a[9](12或者22)的值赋给t了,第一次循环a[9])=a[8]后,a[9]保存的是90吧?
第二次再进来,t=a[9];就把90赋值给了t。最后你把t给了a[j],你说最后输出12或者22的位置是90有问题吗?一点问题都没有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
面朝大海一青橙
2011-06-15 · 知道合伙人软件行家
面朝大海一青橙
知道合伙人软件行家
采纳数:8 获赞数:38
独立设计多个管理系统。

向TA提问 私信TA
展开全部
#include<stdio.h>
main()
{
int i,j,t,a[10]={10,20,30,40,50,60,70,80,90};
printf("请输入一个数:");
scanf("%d",&a[9]);
for(i=0;i<9;i++)
if(a[9]<a[i])
{
t=a[9];
for(j=8;j>=i;j--)
{
a[j+1]=a[j];
}
a[j+1]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szmneo
2011-06-15 · TA获得超过157个赞
知道答主
回答量:111
采纳率:0%
帮助的人:99.3万
展开全部
直接t=a[j+1];呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式