| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 846 人关注过本帖
标题:提示内存出错,三个数比大小,用指针,不用冒泡之类的哈,程序有问题
取消只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏
已结贴  问题点数:20 回复次数:6 
提示内存出错,三个数比大小,用指针,不用冒泡之类的哈,程序有问题
#include"stdio.h"
int main(){
    int a,b,c,tem;
    int *x=&a,*y=&b,*z=&c;
    printf("imput three number:\n");
    scanf("%d %d %d",*x,*y,*z);
   
    if(*x>*y){
        tem=*x;
        *x=*y;
        *y=tem;
        }
    else if(*x>*z){
            tem=*x;
        *x=*z;
        *z=tem;
    }
    else if(*y>*z)
    {
                tem=*y;
        *y=*z;
        *z=tem;
    }
printf("%d%d%d",&a,&b,c);}
搜索更多相关主题的帖子: 内存 include number 
2012-01-07 20:37
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
在线等啊。

认为事物非黑即白是缺智慧的表现……
2012-01-07 20:40
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
算法也有问题,不用数组哈

认为事物非黑即白是缺智慧的表现……
2012-01-07 20:44
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用zaixuexi在2012-1-7 21:04:48的发言:

你们老师怎么教的,呵呵
自练啊,教毛毛

认为事物非黑即白是缺智慧的表现……
2012-01-07 21:10
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用Flip在2012-1-7 21:02:30的发言:

#include"stdio.h"
#include"stdlib.h"
int main()
{
    int tem;
    int *x,*y,*z;
    x=(int *)malloc(sizeof(int));
    y=(int *)malloc(sizeof(int));
    z=(int *)malloc(sizeof(int));
    printf("imput three number:\n");
    scanf("%d %d %d",x,y,z);
   
    if(*x>*y){
        tem=*x;
        *x=*y;
        *y=tem;
        }
    if(*x>*z)
    {
        tem=*x;
        *x=*z;
        *z=tem;
    }
    if(*y>*z)
    {
        tem=*y;
        *y=*z;
        *z=tem;
    }
    printf("%d%d%d",*x,*y,*z);
    return 0;
} if语句使用有问题。
对,就是这样

认为事物非黑即白是缺智慧的表现……
2012-01-07 21:11
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
谢谢楼上几位了,先把基础强化一下再说其他的,。

认为事物非黑即白是缺智慧的表现……
2012-01-07 21:42
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-1-7 21:57:05的发言:

你的基础主要坏在下面两行上:

 
int *x=&a,*y=&b,*z=&c;
scanf("%d %d %d",*x,*y,*z);


数学上的变量替换,你应该是学过的,编程也可以运用。第二行的*x,根据第一行的定义,其结果是int数据(int *x表明右侧*x的值类型是int),那么scanf("%d", *x)就演变成scanf("%d", a)。从hello,world开始,你就应该知道后者是错的。

你的打基础方向,是搞明白scanf("%d", &a)到底需要指针来干什么!

另外,第一行那样的声明格式,也是你出错的诱因之一(对你来说恐怕还是主因):你看到*x=&a,于是以为scanf("%d", *a)即是scanf("%d", &a),这样一来,又暴露出指针声明的基础问题。

嗯。这个之前已经结贴了,我现在在注意到你的跟帖,你说的很对,我觉得是我的疏忽大意。我这里应该弄成scanf("%d %d %d",x,y,z); 这样就应该是对的,是吧,呵呵
用这个小程序就验证了关于指针的几点基础。
#include"stdio.h"
int main(){
    int b;
    int* a=&b;
    printf("imput a number");
    scanf("%d",a);
    printf("%d",*a);
}


[ 本帖最后由 a271885843 于 2012-1-8 23:06 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-01-08 23:04
快速回复:提示内存出错,三个数比大小,用指针,不用冒泡之类的哈,程序有问题
数据加载中...
 
   



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

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