| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2641 人关注过本帖
标题:新手求助,总出现这个问题
只看楼主 加入收藏
ytysgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:10 
新手求助,总出现这个问题
#include<stdio.h>
int main()
{
    void inv(int x[],int n);
    int i,a[10]={3,78,9,55,46,19,38,395,14,16};
    printf("The original array:\n");
    for(i=0;i<10;i++)
    printf("%4d\n",a[i]);
    inv(a,10);
    printf("The array has been inverted:\n");
    for(i=0;i<10;i++)
    printf("%4d\n",a[i]);
    return 0;
}
void  intv(int x[],int n)
{
    int i,t;
    for(i=0;i<5;i++,n--)
    {
        t=x[i];
        x[i]=x[n-1];
        x[n-1]=t;
    }
}
错误每次都是C:\Users\haword\Desktop\编程练习\collect2.exe    [Error] ld returned 1 exit status
求大神帮助!
搜索更多相关主题的帖子: original include return Users 
2016-05-08 22:52
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
void  intv(int x[],int n)

void  inv(int x[],int n)
2016-05-08 23:06
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:5 
#include<stdio.h>
void  intv(int x[],int n);
int main()
{
    int i,a[10]={3,78,9,55,46,19,38,395,14,16};
    printf("The original array:\n");
    for(i=0;i<10;i++)
    printf("%4d\n",a[i]);
    intv(a,10);
    printf("The array has been inverted:\n");
    for(i=0;i<10;i++)
    printf("%4d\n",a[i]);
    return 0;
}
void  intv(int x[],int n)
{
    int i,t;
    for(i=0;i<5;i++,n--)
    {
        t=x[i];
        x[i]=x[n-1];
        x[n-1]=t;
    }
}
帮你修改了一下。红色标志是你缺少的字母

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-05-09 02:22
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
函数声明和函数定义不一致
2016-05-09 08:43
ytysgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-8
收藏
得分:0 
回复 3楼 lanke711
谢谢!!
2016-05-09 22:36
ytysgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-8
收藏
得分:0 
回复 4楼 wanglianyi1
恩,发现这个错误了,谢谢!!
2016-05-09 22:37
ytysgz
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-5-8
收藏
得分:0 
回复 3楼 lanke711
#include<stdio.h>
int main()
{   
    void intput(int );
    void change(int );
    void output(int );
    int number[10];
    intput(number[10]);
    change(number[10]);
    output(number[10]);
    return 0;
}
void intput(int number[10])
{
    int i;
    printf("请输入十个整数:\n");
    for(i=0;i<10;i++)
    scanf("%d",&number[i]);
 }
void change(int number[10])
{
    int *max,*min,*p,k,t;
    min = number;
    for(p=number+1;p<number+10;p++)
    {
        if(*min>*p)
        *min = *p;
    }
    {k=number[0];number[0]=*min;*min=k;}
    max = number;
    for(p=number;p<number+10;p++)
    {
        if(*max<*p)
        *max = *p;
    }
    {t=number[9];number[9]=*max;*max=t;}
}
void output(int number[10])
{
    int i;
    printf("调整后的十个数为:\n");
    for(i=0;i<10;i++)
    printf("%4d",number[i]);
}
那这个又是错到哪里了?错误还是C:\Users\haword\Desktop\编程练习\collect2.exe    [Error] ld returned 1 exit status
2016-05-09 22:40
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
以下是引用ytysgz在2016-5-9 22:40:05的发言:

#include<stdio.h>
int main()
{   
    void intput(int );
    void change(int );
    void output(int );
    int number[10];
    intput(number[10]);
    change(number[10]);
    output(number[10]);
    return 0;
}
void intput(int number[10])
{
    int i;
    printf("请输入十个整数:\n");
    for(i=0;i<10;i++)
    scanf("%d",&number);
 }
void change(int number[10])
{
    int *max,*min,*p,k,t;
    min = number;
    for(p=number+1;p<number+10;p++)
    {
        if(*min>*p)
        *min = *p;
    }
    {k=number[0];number[0]=*min;*min=k;}
    max = number;
    for(p=number;p<number+10;p++)
    {
        if(*max<*p)
        *max = *p;
    }
    {t=number[9];number[9]=*max;*max=t;}
}
void output(int number[10])
{
    int i;
    printf("调整后的十个数为:\n");
    for(i=0;i<10;i++)
    printf("%4d",number);
}
那这个又是错到哪里了?错误还是C:\Users\haword\Desktop\编程练习\collect2.exe    [Error] ld returned 1 exit status

程序代码:
#include<stdio.h>
void intput(int number[]);
void change(int number[]);
void output(int number[]);
int main()
{
    int number[10];
    intput(number);
    change(number);
    output(number);
    return 0;
}
void intput(int number[])
{
    int i;
    printf("请输入十个整数:\n");
    for(i=0; i<10; i++)
        scanf("%d",&number[i]);
}
void change(int number[])
{
    int *max,*min,*p,k,t;
    min = number;
    for(p=number+1; p<number+10; p++)
    {
        if(*min>*p)
            *min = *p;
    }
    {
        k=number[0];
        number[0]=*min;
        *min=k;
    }
    max = number;
    for(p=number; p<number+10; p++)
    {
        if(*max<*p)
            *max = *p;
    }
    {
        t=number[9];
        number[9]=*max;
        *max=t;
    }
}
void output(int number[])
{
    int i;
    printf("调整后的十个数为:\n");
    for(i=0; i<10; i++)
        printf("%4d",number[i]);
}
2016-05-10 08:10
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
1、还是函数声明与定义的问题:函数声明尽量与你自定义函数格式一致。函数声明的函数类型就是你自定义函数返回值的类型,如无返回值就用void类型;函数名最好做到顾名思义,即看到名称就能知道大概函数的作用;声明函数的参数和你自定义函数的参数保持一致格式;
    void intput(int );
    void change(int );
    void output(int );
改为:
    void intput(int number[]);
    void change(int number[]);
    void output(int number[]);
2、第二个问题是函数调用的问题:函数数组作为函数的参数,函数调用时候传递的是数组的首地址,所以用函数名即可,不用加数组的维数,
    intput(number[10]);
    change(number[10]);
    output(number[10]);
改为:
    intput(number);
    change(number);
    output(number);
或者改为:
    intput(&number[10]);
    change(&number[10]);
    output(&number[10]);
3、第三个问题就是你的change函数还是有问题的,一个函数最好不要做两个功能,你这好像又是max又是min的,你可以试一下,改完第一和第二个问题后,程序可以运行了,但是输出会有错误。
change函数还是要调整下,再想想,这个不是语法错误了,是算法设计的问题,你看你是想升序排列还是降序排列。没必要两个功能都用啊,在最后输出的时候控制数组下标或者指针位置就可以实现两个顺序输出了。

[此贴子已经被作者于2016-5-10 08:58编辑过]

2016-05-10 08:33
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 8楼 吹水佬
改完后的程序最后的输出也有问题的,升序排列还是降序排列。看change函数先min后max的,函数功能有点紊乱吧,比如:输入1 2 3 4 5 6 7 8 9 10
输出是10 2 3 4 5 6 7 8 9 10 了,最后输出就不伦不类,不是降序也不是升序的。
不知道楼主是什么意图,不过这样输出的话好像没啥意义。

[此贴子已经被作者于2016-5-10 08:59编辑过]

2016-05-10 08:56
快速回复:新手求助,总出现这个问题
数据加载中...
 
   



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

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