注册 登录
编程论坛 数据结构与算法

新手,可以运行,但出现一堆数字,求修改

aKARL 发布于 2013-09-11 09:08, 762 次点击
main()
{
 int i,n,j,x;
 int a[20];
 scanf("%d",&n);
 for(i=0;i<=n-1;i++)
  scanf("%d",&a[20]);
 scanf("%d",&x);
 for(j=n;j>=x;j--)
  a[j+1]=a[j];
 n--;
 for(i=0;i<=n-1;i++)
  printf("%d",a[i]);
}

请大神帮忙修改下
9 回复
#2
wp2319572013-09-11 09:10
scanf("%d",&a[20]);
指针位置明显不对
#3
aKARL2013-09-11 09:12
回复 2楼 wp231957
请问是哪一个指针呢?菜鸟没理解、。。。。。。。。。。。
#4
aKARL2013-09-11 09:15
回复 2楼 wp231957
我把啊a【20】改成a【i】了
结果正常多了,但还有个小问题
我输入1,2,3,4,5,然后删除第3个,变成1,2,3,3,4
求大神教导一下
#5
3037709572013-09-11 09:18
不知道你是不是这个意思?

int main()
{
int i,n,j,x;
int a[20];
scanf("%d",&n);
if(n>20) return 0;

for(i=0;i<n;i++)
  scanf("%d",&a[i]);

scanf("%d",&x);
for(j=n-1;j>=x;j--)
  a[j+1]=a[j];

for(i=0;i<n;i++)
  printf("%d",a[i]);
 return 0;
}

#6
wp2319572013-09-11 09:18
没看明白你这段代码想干嘛  2个循环变量居然还要手工输入   直接给出不是更好
#7
aKARL2013-09-11 09:20
回复 6楼 wp231957
作业要求,前面的是熟悉练手。。。。。。。。。。重点是学习怎样删除,插入的刚学完。。。。。。
#8
wp2319572013-09-11 09:22
找准插入点或者删除点的位置  插入后移  删除前移  就这样了
#9
aKARL2013-09-11 09:33
回复 8楼 wp231957
输入5个数,123456,删除第3个,显示1234,请问这是什么毛病。。。。。。。
#10
3037709572013-09-11 09:40
#include  <iostream>
using  namespace  std;
int main()
{
    int i,n,j,x;
    int a[20];
    scanf("%d",&n);
    if(n>20) return 0;
    for(i=0; i<n; i++)
        scanf("%d",&a[i]);
    scanf("%d",&x);//注意删除的位置是从0开始的
    if(x>=n) return 0;
    for(j=x; j<n; j++)
        a[j]=a[j+1];
    for(i=0; i<n-1; i++)
        printf("%d,",a[i]);
    return 0;
}
1