标题:输入月份打出星座问题,大神帮忙看看,为什么后面输入前面行而后面不行了?
只看楼主
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
结帖率:75%
已结贴  问题点数:20 回复次数:11 
输入月份打出星座问题,大神帮忙看看,为什么后面输入前面行而后面不行了?
#include<stdio.h>
int main()
{
    int n;
    printf("输入生日(如1月1日输入101,3月2日输入302,12月30日输入1230):");
    scanf("%d", &n);
    if (n >= 101 && n <= 1230)
    {
        if (n >= 101 && n <= 119)
            printf("魔蝎座\n");
        else if (n >= 120 && n <= 218)
            printf("水瓶座\n");
        else if (n >= 219 && n <= 320)
            printf("双鱼座\n");
        else if (n >= 321 && n <= 419)
            printf("白羊座\n");
        else if (n >= 420 && n <= 520)
            printf("金牛座\n");
        else if (n >= 521 && n <= 621)
            printf("双子座\n");
        else if (n >= 622 && n <= 722)
            printf("巨蟹座\n");
        else if (n >= 723 && n <= 822)
            printf("狮子座\n");
        else if ("n>=823&&n<=922")
            printf("处女座\n");
        else if (n >= 923 && n <= 1023)
            printf("天秤座\n");
        else if (n >= 1024 && n <= 1122)
            printf("天蝎座\n");
        else if (n >= 1123 && n <= 1221)
            printf("射手座\n");
        else if (n >= 1222 && n <= 1230)
            printf("魔蝎座\n");
        else
            printf("输入错误\n");
    }
    else
        printf("输入错误\n");
}
搜索更多相关主题的帖子: 星座 include 双鱼座 白羊座 水瓶座 
2015-03-16 22:15
等等等
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-3-16
得分:2 
是不是有两个else printf("输入错误")

意外发生了,有些东西改变了
2015-03-16 22:42
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:3 
回复 楼主 traveller、z
为什么不选择switch...case 结构呢? 可以精减代码 .

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-03-17 19:25
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
得分:5 
逻辑问题。里面的else  与  外面的else  出现逻辑上的冲突。

另外对这种选择性的问题  最后选择用   switch分支语句。
不然代码一大片if else  看的都头疼。

授人以鱼,不如授人以渔
2015-03-17 19:34
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:10 
挺不错的一个实用程序 但如果能实现重复查询 会更好 就像这样!
程序代码:
#include<stdio.h>
#include <windows.h>
void test(int n);
int main()
{
    int n,choose;
    system("title 星座查询!");
    printf("输入生日(如1月1日输入101,3月2日输入302,12月30日输入1230):");
    scanf("%d", &n);
    test(n);
    scanf("%d",&choose);
    if(choose==1)
    main();
    else
    exit(0);
}
void test(int n)
{
    int choose;
     if (n >= 101 && n <= 1230){
        if (n >= 101 && n <= 119)
            printf("魔蝎座\n");
        else if (n >= 120 && n <= 218)
            printf("水瓶座\n");
        else if (n >= 219 && n <= 320)
            printf("双鱼座\n");
        else if (n >= 321 && n <= 419)
            printf("白羊座\n");
        else if (n >= 420 && n <= 520)
            printf("金牛座\n");
        else if (n >= 521 && n <= 621)
            printf("双子座\n");
        else if (n >= 622 && n <= 722)
            printf("巨蟹座\n");
        else if (n >= 723 && n <= 822)
            printf("狮子座\n");
        else if (n>=823  &&  n<=922)
            printf("处女座\n");
        else if (n >= 923 && n <= 1023)
            printf("天秤座\n");
        else if (n >= 1024 && n <= 1122)
            printf("天蝎座\n");
        else if (n >= 1123 && n <= 1221)
            printf("射手座\n");
        else if (n >= 1222 && n <= 1230)
            printf("魔蝎座\n");
        else
            printf("输入有误,请重新输入!\n");
    }
    else{
        printf("输入错误,是否重新输入:1.继续 2.退出\n");
        scanf("%d",&choose);
        if(choose==1)
        main();
        else
        exit(0);
    }
     printf("是否继续查询:1.继续 0.取消:");
}

----------------------------------------------------------------------
小弟愚见 见笑了 .

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-03-17 20:35
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
得分:0 
回复 4楼 执笔画江山
!!!!

[ 本帖最后由 traveller、z 于 2015-3-18 13:55 编辑 ]

学习!!!
2015-03-18 13:42
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
得分:0 
回复 4楼 执笔画江山
额帖子长度好像不够,没打印完,我把两个综合在一起

学习!!!
2015-03-18 13:44
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
得分:0 
回复 5楼 逍风
谢了哈,现在还只是初步设想,毕竟是小白

学习!!!
2015-03-18 13:46
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
得分:0 
回复 4楼 执笔画江山
#include<stdio.h>
int main()
{
    int year, cha, m, d;
    printf("出生年份:");
    scanf("%d", &year);
    cha = (year - 1985) % 12;
    if (cha < 0)
        cha = 12 + cha;
    switch (cha)
    {
    case 0:printf("牛年,属牛\n"); break;
    case 1:printf("虎年,属虎\n"); break;
    case 2:printf("兔年,属兔\n"); break;
    case 3:printf("龙年,属龙\n"); break;
    case 4:printf("蛇年,属蛇\n"); break;
    case 5:printf("马年,属马\n"); break;
    case 6:printf("羊年,属羊\n"); break;
    case 7:printf("猴年,属猴\n"); break;
    case 8:printf("鸡年,属鸡\n"); break;
    case 9:printf("狗年,属狗\n"); break;
    case 10:printf("猪年,属猪\n"); break;
    case 11:printf("鼠年,属鼠\n"); break;
    }
    printf("月份及日期:");
    scanf("%d %d", &m,&d);
    switch (m)
    {
    case 1:{if (d < 20)
        printf("魔蝎座\n");
           else
               printf("水瓶座\n");
        break; }
    case 2:{if (d < 19)
        printf("水瓶座\n");
           else
               printf("双鱼座\n");
        break; }
    case 3:{if (d < 21)
        printf("双鱼座\n");
           else
               printf("白羊座\n");
        break; }
    case 4:{if (d < 20)
        printf("白羊座\n");
           else
               printf("金牛座\n");
        break; }
    case 5:{if (d < 21)
        printf("金牛座\n");
           else
               printf("双子座\n");
        break; }
    case 6:{if (d < 22)
        printf("双子座\n");
           else
               printf("巨蟹座\n");
        break; }
    case 7:{if (d < 23)
        printf("巨蟹座\n");
           else
               printf("狮子座\n");
        break; }
    case 8:{if (d < 23)
        printf("狮子座\n");
           else
               printf("处女座");
        break; }
    case 9:{if (d < 23)
        printf("处女座\n");
           else
               printf("天秤座\n");
        break; }
    case 10:{if (d < 24)
        printf("天秤座\n");
            else
                printf("天蝎座\n");
        break; }
    case 11:{if (d < 23)
        printf("天蝎座\n");
            else
                printf("射手座\n");
        break; }
    case 12:{if (d < 22)
        printf("射手座\n");
            else
                printf("魔蝎座\n");
        break; }
    }
}

学习!!!
2015-03-18 13:54
traveller、z
Rank: 2
等 级:论坛游民
帖 子:49
专家分:34
注 册:2014-12-2
得分:0 
回复 5楼 逍风
设计一个循环利用的,对方便

学习!!!
2015-03-18 13:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442720-1-1.html




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

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