| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1214 人关注过本帖
标题:c语言代码bug
只看楼主 加入收藏
wjjjj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-1-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
c语言代码bug
图片附件: 游客没有浏览图片的权限,请 登录注册
我想让12插到数组当中,结果却变成了图中的样子!该如何改啊?               #include<stdio.h>
#define N 10
void insert(int *p,int x)
{
    int i,j;
    for(i=0;i<N-1&&*(p+i)<x;i++)
    {
        for(j=N-2;j>=i;j--)
        {
            p[j+1]=p[j];
            p[i]=x;
        }
    }
}
void output(int a[],int n)
{
    int i;
    for(i=0;i<N-1;i++)
    {
        printf("%4d",a[i]);
        
    }
}
int main()
{
    int a[N]={1,4,5,7,19,20,34,56,78},x;
    printf("请输入要插入的数据:");
    scanf("%d",&x);
    printf("原数组为:\n");
    output(a,N-1);
    insert(a,x);
    printf("插入%d后的数组为:\n",x);
    output(a,N);
    return 0;
}
搜索更多相关主题的帖子: include insert c语言 如何 
2017-02-25 10:19
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:7 


 for(i=0;i<N-1&&*(p+i)<x;i++)
    {
        for(j=N-2;j>=i;j--)
        {
            p[j+1]=p[j];
            p[i]=x;
        }
    }
两个for循环,此条件判断i<N-1&&*(p+i)<x是要表达什么?for(;;)循环体的判断实际是什么?你表达的是什么?

[此贴子已经被作者于2017-2-25 10:44编辑过]


人得一生得奋斗!
2017-02-25 10:41
Leo_L
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2017-2-26
收藏
得分:7 
根据你的思路,有些语句顺序不对,我做了修改:

#define N 10
void insert(int *p,int x)
{
    int i,j;
    //你的这段程序语句顺序不对
    /*
       for(i=0;i<N-1&&*(p+i)<x;i++)
    {
        for(j=N-2;j>=i;j--)
        {
            p[j+1]=p[j];
            p[i]=x;
        }
    }   
    */
   
    //下面是调整后的代码
    for(i=0;i<N-1&&*(p+i)<x;i++)
    {   
    }
    for(j=N-2;j>=i;j--)
    {
        p[j+1]=p[j];
    }
    p[i]=x;
   
   //调整后的代码
   
}
void output(int a[],int n)
{
    int i;
    for(i=0;i<n-1;i++)  //这里是 "n"而不是"N" for(i=0;i<N-1;i++)
    {
        printf("%4d",a[i]);
        
    }
}
int main()
{
    int a[10]={1,4,5,7,19,20,34,56,78},x;
    printf("请输入要插入的数据:");
    scanf("%d",&x);
    printf("原数组为:\n");
    output(a,N);//改动 output(a,N-1);
    insert(a,x);
    printf("插入%d后的数组为:\n",x);
    output(a,N);
    return 0;
}

元气少女Leo_L
2017-02-26 11:25
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:7 
回复 楼主 wjjjj
void insert(int *p,int x)
{
    p+=(N-2);
    int i,j;
    for(;*p>x;p--)
    {
        *(p+1)=*p;
    }
    *(p+1)=x;
}
void output(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%4d",a[i]);
        
    }
}
//这两个函数都要改
2017-02-26 12:26
快速回复:c语言代码bug
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024318 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved