| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1324 人关注过本帖
标题:最近学习数组和指针,自己写了一个三个数比较大小的程序,运行时发现不能实 ...
只看楼主 加入收藏
加一
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2017-7-29
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:3 
最近学习数组和指针,自己写了一个三个数比较大小的程序,运行时发现不能实现,求教哪出了问题???
int main()
{
    int num[3] ={1,2,3};  //定义并初始化数组
    int *prt_num = num;   //定义指针
    int i,temp;          //循环变量 和临时变量
    printf("请输入三个数");
    for(i = 0; i< 3; i++)
    {
        scanf("%d",(prt_num+i));
    }
    for(i = 0; i<3 ;i++)     //打印输入的数
    {
        printf("%d\t",num[i]);
    }
    printf("\n");
    if(*(prt_num) > *(prt_num+1))  //第一个数和第二个数比较交换
    {
        temp = *prt_num;
        *prt_num = *(prt_num+1);
        *(prt_num+1) = temp;
    }else
    if(*(prt_num) > *(prt_num+2))  //第一个和第三个比较交换
    {
        temp = *(prt_num);
        *(prt_num) = *(prt_num+2);
        *(prt_num+2) = temp;
    }else
    if(*(prt_num+1) > *(prt_num+2))  //第二个和第三个比较交换
    {
        temp = *(prt_num+1);
        *(prt_num+1) = *(prt_num+2);
        *(prt_num+2) = temp;

    }

    for(i =0; i<3 ;i++)             //打印交换好的数
    {
        printf("%d\t",num[i]);
    }
}
搜索更多相关主题的帖子: 个数 比较 num temp printf 
2017-08-29 21:27
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:9 
逻辑不正确  把所有的else去掉 试一下

DO IT YOURSELF !
2017-08-30 09:29
加一
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2017-7-29
收藏
得分:0 
回复 楼主 加一
多了else,只执行了前面的后面的没执行,把判断变成了选择
2017-08-30 19:03
mike_free
Rank: 3Rank: 3
来 自:CN
等 级:论坛游侠
威 望:1
帖 子:36
专家分:139
注 册:2017-8-25
收藏
得分:9 
你这个程序是逻辑上的问题,而且你既然是比较大小那么应该输出最大最小值。你这样写可以认为是在进行排序。
我把if那一大段改成for循环,结果是升序排列,最大的数在最后。
 for(i = 1;i<3;i++)
        for(j = 0;j<3-i;j++)
            if(*(prt_num+j)>*(prt_num+j+1))
        {
            temp=*(prt_num+j);
            *(prt_num+j)=*(prt_num+j+1);
            *(prt_num+j+1)=temp;

        }
图片附件: 游客没有浏览图片的权限,请 登录注册

努力就是最大的收获
2017-09-01 16:05
快速回复:最近学习数组和指针,自己写了一个三个数比较大小的程序,运行时发现不 ...
数据加载中...
 
   



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

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