| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:<求助>指针不熟练.函数不熟练 一起用就更不熟练了.(比较大小)
只看楼主 加入收藏
、镜花氺月
Rank: 2
等 级:论坛游民
帖 子:71
专家分:18
注 册:2010-11-5
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:13 
<求助>指针不熟练.函数不熟练 一起用就更不熟练了.(比较大小)
目的:输入两个数比较大小
程序代码:
#include<stdio.h>
void main()
{
    int a,b;
    int *p1,*p2;
    scanf("%d%d",&a,&b);
    p1=&a;
    p2=&b;
    if (a<b)
   
        swap(p1,p2);
        printf("%d,%d",a,b);
        return 0;
   
   
}
    swap(int *printer1,*printer2)
    {
        int temp;
        temp=*printer1;
        *printer1=*printer2;
        *printer2=temp;
        return swap;
    }

运行不通....
错误在哪?
为什么?
搜索更多相关主题的帖子: 函数 
2011-03-20 14:06
like2266
Rank: 2
等 级:论坛游民
帖 子:17
专家分:40
注 册:2011-3-19
收藏
得分:0 
最开始要声明一下swap函数吧?还有swap函数的返回值应该是temp吧!
2011-03-20 14:09
like2266
Rank: 2
等 级:论坛游民
帖 子:17
专家分:40
注 册:2011-3-19
收藏
得分:0 
不对,应该是swap前加上个void并且去掉return语句!
2011-03-20 14:10
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:5 
#include<stdio.h>
swap(int *printer1,int *printer2);//函数声明,楼主你没有声明
void main()
{
    int a,b;
    int *p1,*p2;
    scanf("%d,%d",&a,&b);//转换说明符最好用逗号分隔开,方便输入
    p1=&a;
    p2=&b;
    if (a<b)
   
        swap(p1,p2);
        printf("%d,%d",a,b);
       getch();
   
   
}
    swap(int *printer1,int *printer2)
    {
        int temp;
        temp=*printer1;
        *printer1=*printer2;
        *printer2=temp;
        return *printer1;
    }

[ 本帖最后由 liangjinchao 于 2011-3-20 15:33 编辑 ]

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-20 15:30
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
学习学习。。
2011-03-20 15:35
天涯天下去
Rank: 2
等 级:论坛游民
帖 子:41
专家分:35
注 册:2010-12-2
收藏
得分:0 
首先要先声明swap()函数
其次转换符不一定要用“,”隔开的
在者 在对形参声明的时候必须是一一声明的。。。

学无止境
2011-03-20 15:41
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:5 
你这个程序乱七八糟,不知道要表达什么东西。你说要调用函数返回一个值吧,你又不要用一个变量等于swap(p1,p2),再说也不是返回一个swap;你说不要返回一个值吧,程序又没有 void,看我修改后的程序。
程序代码:
#include<stdio.h>
void main()
{
    int a,b;
    int *p1=&a,*p2=&b;
    void swap(int *pointer1,int *pointer2);
    scanf("%d,%d",&a,&b);
    if (a<b)
           swap(p1,p2);
    printf("%d,%d",a,b);
}
void swap(int *pointer1,int *pointer2)
{
    int temp;
    temp=*pointer1;
    *pointer1=*pointer2;
    *pointer2=temp;
}
2011-03-20 15:46
wuzhanghao88
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:146
注 册:2009-10-25
收藏
得分:5 
#include<stdio.h>
void swap(int *printer1,int *printer2)
    {
        int temp;
        temp=*printer1;
        *printer1=*printer2;
        *printer2=temp;
 //       return swap;
    }

int main()
{
    int a,b;
    int *p1,*p2;
    scanf("%d%d",&a,&b);
    p1=&a;
    p2=&b;
    if (a<b)
        swap(p1,p2);
     printf("%d,%d",a,b);
     return 0;
}
2011-03-20 21:51
赵贺辉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:28
专家分:19
注 册:2011-3-18
收藏
得分:0 
我运行了好几遍,怎么次次都行啊?、你是不是输入错了,,,scanf("%d%d",&a,&b);这个部分输入时先输a,,,回车再输b
2011-03-20 22:10
常建华
Rank: 2
等 级:论坛游民
帖 子:16
专家分:28
注 册:2011-3-20
收藏
得分:5 
错误:
1,没有声明swap()函数,
2,swap()函数不应该有返回值! 它的作用只是交换两个变量的值
2011-03-20 22:22
快速回复:<求助>指针不熟练.函数不熟练 一起用就更不熟练了.(比较大小)
数据加载中...
 
   



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

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