
c语言输入5个数(已知从大到小)再输一个数n,将n插入数组,如输入6 5 4 3 1 2 输出6 5 4 3 2 1 我怎么错
#include<stdio.h>intmain(){intn,i,a[6];for(i=0;i<5;i++)scanf("%d",&a[i]);scanf("%d",&...
#include<stdio.h>
int main() { int n,i,a[6];
for(i=0;i<5;i++)
scanf("%d ",&a[i]);
scanf("%d",&n);
for(i=0;i<5;i++)
{if(n<a[i])
break;
}
a[i+1]=n;
for(i=i+2;i<=4;i++)
a[i+1]=a[i];
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
} 展开
int main() { int n,i,a[6];
for(i=0;i<5;i++)
scanf("%d ",&a[i]);
scanf("%d",&n);
for(i=0;i<5;i++)
{if(n<a[i])
break;
}
a[i+1]=n;
for(i=i+2;i<=4;i++)
a[i+1]=a[i];
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
} 展开
4个回答
展开全部
已改,看注释
#include<stdio.h>
int main()
{
int n,i,a[6], pos;
for(i=0;i<5;i++)
scanf("%d ",&a[i]);
scanf("%d",&n);
for(i=0;i<5;i++)
{
if(n>a[i]) // 大于
break;
}
pos = i;
for(i=5;i>pos;i--) // 先从后面开始覆盖
a[i]=a[i-1];
a[pos] = n; // 最后才插入n
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
}
#include<stdio.h>
int main()
{
int n,i,a[6], pos;
for(i=0;i<5;i++)
scanf("%d ",&a[i]);
scanf("%d",&n);
for(i=0;i<5;i++)
{
if(n>a[i]) // 大于
break;
}
pos = i;
for(i=5;i>pos;i--) // 先从后面开始覆盖
a[i]=a[i-1];
a[pos] = n; // 最后才插入n
for(i=0;i<6;i++)
printf("%d\n",a[i]);
return 0;
}
展开全部
for(i=0;i<5;i++)
{if(n>a[i]) //这里应该是大于吧 不是小于 从大到小,不是从小到大
break;
}
还有一个问题就是
a[i+1]=n;
for(i=i+2;i<=4;i++)
a[i+1]=a[i];
修改为
int j;
for(j=5;j>i;j++)
a[j]=a[j-1];
a[i] = n;
{if(n>a[i]) //这里应该是大于吧 不是小于 从大到小,不是从小到大
break;
}
还有一个问题就是
a[i+1]=n;
for(i=i+2;i<=4;i++)
a[i+1]=a[i];
修改为
int j;
for(j=5;j>i;j++)
a[j]=a[j-1];
a[i] = n;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先后移,再覆盖。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询