标题:这个程序怎么编都无法输出答案,求解
只看楼主
LCwan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2014-4-1
结帖率:66.67%
已结贴  问题点数:10 回复次数:10 
这个程序怎么编都无法输出答案,求解
题目:假定程序要为一家大型药厂面试求职者 该程序给满足某些教育条件的求职者面试机会 条件如下  ♀1,25岁以上,化学专业毕业生,但不是毕业于BJ大学。
2.BJ大学化学专业毕业生。3,28岁以下,QH大学经济学专业毕业生。4,25岁以上,BJ大学非化学专业毕业生。
我写的程序:#include<stdio.h>
main()
{int a,b;
char c,d,i;
printf("\t\t欢迎来到XXX药厂\t\t\n");
printf("\t\t请登记信息\n");
printf("您的年龄:");
scanf("%d",&a);
printf("你是BJ大学毕业生吗,是的话按“y”不是的话按“n”\n");
scanf("%c",&d);
if(d=='y'||d=='Y');
{printf("你是化学专业毕业生吗,是的话按“y”不是的话按“n”");
scanf("%c",&c);
if(c=='y'||c=='Y');
{b=1;
return b;}     
if(c=='n'||c=='N')
{if(a>=25)
b=1;
else
b=0;
}
}
if(d=='n'||d=='N')
{printf("你是化学专业的吗,是的话按“y”,不是按“n”");
scanf("%c",&c);
if(c=='y'||c=='Y')
{if(a>=25)
b=1;
else
b=0;}
if(c=='n'||c=='N')
{printf("你是QH大学经济系的吗,是的话按“y”不是按“n”");
if(i=='y'||i=='Y')
{if(a>=28)
b=0;
else
b=1;}
else
b=0;}}
if(b)
printf("告诉你个不幸的消息,你被我们盯上了,明天来面试吧!!!");
else
printf("告诉你个好消息,你没被我们盯上,你脱离苦海了!!!");
}
希望各位大神指导。。。。
搜索更多相关主题的帖子: 大学毕业生 include 经济学 求职者 
2014-04-11 11:50
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:2 
有好几处的if后面直接跟了分号,例如:
if(d=='y'||d=='Y');

总有那身价贱的人给作业贴回复完整的代码
2014-04-11 12:40
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
得分:2 
程序代码:
#include<stdio.h>
main()
{int a,b;
char c,d,i;
printf("\t\t欢迎来到XXX药厂\t\t\n");
printf("\t\t请登记信息\n");
printf("您的年龄:");
scanf("%d",&a);
printf("你是BJ大学毕业生吗,是的话按“y”不是的话按“n”\n");
scanf("%c",&d);
if(d=='y'||d=='Y');  // if ()后面不要有 ; 不然,这个if()后面的{}无论如何都会执行的 
{printf("你是化学专业毕业生吗,是的话按“y”不是的话按“n”");
scanf("%c",&c);
if(c=='y'||c=='Y');
{b=1;
return b;}  // 这里是主函数了。。。再return会直接跳出程序的执行的。。。 最好是建立个别的函数,
            // 通过调用判定b的值来返回结果   最下面的情况也说明了。。
if(c=='n'||c=='N')
{if(a>=25)
b=1;
else
b=0;
}
}
if(d=='n'||d=='N')
{printf("你是化学专业的吗,是的话按“y”,不是按“n”");
scanf("%c",&c);
if(c=='y'||c=='Y')
{if(a>=25)
b=1;
else 
b=0;}
if(c=='n'||c=='N')
{printf("你是QH大学经济系的吗,是的话按“y”不是按“n”");
if(i=='y'||i=='Y')
{if(a>=28)
b=0;
else 
b=1;}
else
b=0;}}
if(b)
printf("告诉你个不幸的消息,你被我们盯上了,明天来面试吧!!!");
else
printf("告诉你个好消息,你没被我们盯上,你脱离苦海了!!!");
}


排版看的我有点晕

未知令人期待!
2014-04-11 12:56
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
得分:0 
自己重新写了一下
程序代码:
/*题目:假定程序要为一家大型药厂面试求职者 该程序给满足某些教育条件的求职者面试机会 
条件如下  
♀1,25岁以上,化学专业毕业生,但不是毕业于BJ大学。
2.BJ大学化学专业毕业生。
3,28岁以下,QH大学经济学专业毕业生。
4,25岁以上,BJ大学非化学专业毕业生。
我写的程序:*/

//  ♀ 这个是 女性标记吧 0.0

#include<stdio.h>
main()
{
    int  a;   // 申请者年龄
    int  b;   // 申请者的最终结果
    char c;   // 申请者是否BJ大学毕业
    char d;   // 申请者是否是化学专业毕业
    char i;   // 申请者是否是QH大学经济学专业毕业

    b = 0;

    printf("\t\t欢迎来到XXX药厂\t\t\n");
    printf("\t\t请登记信息\n");
    
    printf("您的年龄:");
    scanf("%d", &a);
    getchar(); // 加一句先除去输入年龄后的按键,不然scanf字符的时候会出错
    printf("你是BJ大学毕业生吗,是的话按“y”不是的话按“n”\n");
    scanf("%c", &c);
    getchar();
    printf("你是化学专业毕业生吗,是的话按“y”不是的话按“n”\n");
    scanf("%c", &d);
    getchar();
    printf("你是QH大学经济系的吗,是的话按“y”不是按“n”\n");
    scanf("%c", &i);

    // 后面就是用if else 嵌套,来判定申请者身份。。
    if (('y' == c) || ('Y' == c))
    { // c是 申请者是否BJ大学毕业
        if (('y' == d) || ('Y' == d))
        { // d是 申请者是否是化学专业毕业
            b = 1;     // 满足条件2
        }
        else
        { // 这里代表不是化学专业毕业
            if (a > 25)
            {
                b = 1; // 满足条件4
            }
        }
    }
    else
    { // 代表申请者不是BJ大学毕业
        if (('y' == d) || ('Y' == d))
        { // d是 申请者是否是化学专业毕业
            if (a > 25)
            {
                b = 1; // 满足条件1
            }
        }
        else
        { // 这里代表,申请者不是BJ大学毕业,也不是化学专业毕业
            if (('y' == i) || ('Y' == i))
            { // i是 申请者是否是QH大学经济学专业毕业
                if (a < 28)
                {
                    b = 1; // 满足条件3
                }
            }
        }// END else OF if (('y' == d) || ('Y' == d)) &&&
         // END if (('y' == d) || ('Y' == d)) FOR ALL
    }// END else OF if (('y' == c) || ('Y' == c)) &&&
     // END if (('y' == c) || ('Y' == c)) FOR ALL
    
    // 判定是已经完毕了,b初始化0,只有满足条件才重新赋值为1
    // 下面输出结果
    if(1 == b)
    {
        printf("告诉你个不幸的消息,你被我们盯上了,明天来面试吧!!!\n");
    }
    else
    {
        printf("告诉你个好消息,你没被我们盯上,你脱离苦海了!!!\n");
    }
}

未知令人期待!
2014-04-11 12:58
LCwan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2014-4-1
得分:0 
回复 4楼 神机军师
#include<stdio.h>
main()
{int b;

printf("\t\t欢迎来到XXX药厂\t\t\n");
printf("\t\t请登记信息\n");
b=fun();
if(b)
printf("告诉你个不幸的消息,你被我们盯上了,明天来面试吧!!!\n");
else
printf("告诉你个好消息,你没被我们盯上,你脱离苦海了!!!\n");
}
fun()
{int a;
char c,d,i;

printf("您的年龄:");
scanf("%d",&a);
printf("你是BJ大学毕业生吗,是的话按“y”不是的话按“n”\n");
getchar();
scanf("%c",&d);
if(d=='y'||d=='Y')
{printf("你是化学专业毕业生吗,是的话按“y”不是的话按“n”\n");
getchar();
scanf("%c",&c);
    if(c=='y'||c=='Y')
    b=1;   
    if(c=='n'||c=='N')
    {if(a>=25)
    b=1;
      else
      b=0;}
}
if(d=='n'||d=='N')
{printf("你是化学专业的吗,是的话按“y”,不是按“n”\n");
getchar();
scanf("%c",&c);
if(c=='y'||c=='Y')
{if(a>=25)
b=1;
else
b=0;}
if(c=='n'||c=='N')
{printf("你是QH大学经济系的吗,是的话按“y”不是按“n”\n");
getchar();
scanf("%c",&i);
if(i=='y'||i=='Y')
{if(a>=28)
b=0;
else
b=1;}
else
b=0;}}
}
我修改了一下,我想把判定的步骤都存到另一个函数里面去,我想问一下为什么这个函数调用的时候会显示函数未定义呀
2014-04-11 14:21
LCwan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2014-4-1
得分:0 
回复 4楼 神机军师
那个还少发了个  return  b;
2014-04-11 14:24
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
1、函数在使用之前 需要声明 (或者把函数实现部分写在调用者(main函数)之前)
2、你的main 函数  fun 函数 都没有返回值  
3、在fun函数没有返回值的前提下 你使用了b=fun();这个语句 不知道你的是啥编译器  根本就不行的东东

DO IT YOURSELF !
2014-04-11 14:28
安宁1991
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:123
注 册:2014-4-3
得分:2 
卧槽。我用先输入数据,后判断的方式来写,写了半天发现总是有逻辑错误。。这是怎么回事呀。。那个不判断年龄的和28的成功了,另外两个逻辑又错误了。。
写不出来。。

因为有你,所以做什么都有动力。z,爱你。
2014-04-11 15:04
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
得分:0 
7楼 正解~  你要重新定义的判断函数 真不明显
建议楼主 看看函数调用那一方面的学习资料

未知令人期待!
2014-04-11 15:40
安宁1991
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:123
注 册:2014-4-3
得分:0 
都是大牛呀

因为有你,所以做什么都有动力。z,爱你。
2014-04-11 16:18



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




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

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