| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:函数哪里出错了?大大帮忙看下,拜托~
只看楼主 加入收藏
kidundead
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-8-21
结帖率:100%
收藏
 问题点数:0 回复次数:8 
函数哪里出错了?大大帮忙看下,拜托~
#include "stdio.h"
void main()
{
    int a,b,c;
    int change(int x,int y);
    printf("Please enter a,b,c");
    scanf("%d%d%d",&a,&b,&c);
    if(a<b)
       change(a,b);
      if(a<c)
         change(a,c);
        if(b<c)
          change(b,c);
    printf("%d>%d>%d",a,b,c);
   
}
 int change(int x,int y)
 {
     int t,x,y;
     t=x;
     x=y;
     y=t;
 }
输入a,b,c,由大到小输出
出现一个错误,但我找不到哪里错了~
搜索更多相关主题的帖子: 函数 
2009-10-15 16:52
_小小白_
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-10-14
收藏
得分:0 
我是新新手 那个是不是应该是#include<stdio.h>啊,,
2009-10-15 16:56
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
int change(int x,int y) /* 函数要传变量的地址,否则两数交换不了 */
{
     int t,x,y;   /* 这里不用再定义x、y变量了。 */
·
·
改成下面这样。
程序代码:
#include "stdio.h" 
void main() 
{ 
    int a,b,c; 
    int change(int *x,int *y); 
    printf("Please enter a,b,c"); 
    scanf("%d%d%d",&a,&b,&c); 
    if(a<b) 
       change(&a,&b); 
      if(a<c) 
     change(&a,&c); 
        if(b<c) 
      change(&b,&c); 
    printf("%d>%d>%d",a,b,c); 
 
} 
int change(int *x,int *y) 
{ 
     int t; 
     t=*x; 
     *x=*y; 
     *y=t; 
}

努力—前进—变老—退休—入土
2009-10-15 17:19
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:0 
int change(int x,int y)
{
     int t,x,y;
     t=x;
     x=y;
     y=t;
}
在这里不需要定义x,y,另外这个函数没有返回值到主函数中在主函数中(也不能放回改变后的值)的a,b,c的值是不会改变的 。可以用指针或者全部在主函数中写。

离恨恰如春草,更行更远还生。
2009-10-15 17:20
dengjun000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:77
注 册:2009-10-14
收藏
得分:0 
#include "stdio.h"
void main()
{
    int a,b,c;
    int change(int *x,int *y);
    printf("Please enter a,b,c");
    getch();
    scanf("%d%d%d",&a,&b,&c);
    if(a<b)
       change(&a,&b);
      if(a<c)
         change(&a,&c);
        if(b<c)
          change(&b,&c);
    printf("%d>%d>%d",a,b,c);
    getch();
     
}
int change(int *x,int *y)
{
     int t;
     t=*x;
     *x=*y;
     *y=t;
}
我改了。。应该用传址调用吧。你要改变A和B得值。。
2009-10-15 17:23
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
路见不平,拨刀相助,该出手时就出手,一出手发现有好多手。

努力—前进—变老—退休—入土
2009-10-15 17:28
liuyuling
Rank: 1
等 级:新手上路
帖 子:10
专家分:5
注 册:2009-10-14
收藏
得分:0 
要函数返回2个以上的值就要用指针了 ,要不只能返回1个值,所以他们 int change(int *x,int *y)  这样定义函数
 
2009-10-15 17:50
kidundead
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-8-21
收藏
得分:0 
噢噢~~谢谢各位了~
还有~UserYuH这位大大很热心的说,很多帖子都发现你的影子~
2009-10-15 17:52
刘暮哲
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:75
专家分:83
注 册:2009-9-25
收藏
得分:0 
#include "stdio.h"  
void main()  
{  
    int a,b,c;  
    int change(int *x,int *y);  
    printf("Please enter a,b,c");  
    getch();  
    scanf("%d%d%d",&a,&b,&c);  
    if(a<b)  
       change(&a,&b);  
      if(a<c)  
         change(&a,&c);  
        if(b<c)  
          change(&b,&c);  
    printf("%d>%d>%d",a,b,c);  
    getch();  
      
}  
int change(int *x,int *y)  
{  
     int t;  
     t=*x;  
     *x=*y;  
     *y=t;  
}

做最好的自己
2009-10-15 19:55
快速回复:函数哪里出错了?大大帮忙看下,拜托~
数据加载中...
 
   



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

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