| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1171 人关注过本帖
标题:上课听得不是很明白,有几个简单的题目不会做,希望高手指教一下,谢了
只看楼主 加入收藏
owen1992
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
上课听得不是很明白,有几个简单的题目不会做,希望高手指教一下,谢了
1.编写程序:输入一门课程的成绩,若高于90分,输出“A  grade ”;若高于80分而低于90分,输出“B grade ”;若高于70分而低于80分,输出“C  grade ”;

若高于60分而低于70分,输出“D  grade ”;否则输出“Not passed ”。




2.编写程序: 输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。

(1) 是3的倍数,但不是7的倍数。

(2) 不是3的倍数,是7的倍数。

(3) 是3的倍数,也是7的倍数。

(4) 既不是3的被数,也不是7的倍数

搜索更多相关主题的帖子: 60分 编写程序 课程 
2011-03-24 21:30
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
第一个可以用一个 switch 来做。
应该是书上的例题吧?

程序代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int score = 85;
   

    switch (score/10) {
        case 10:
        case 9: puts("A grade"); break;
        case 8: puts("B grade"); break;
        case 7: puts("C grade"); break;
        case 6: puts("D grade"); break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0: puts("Not passed"); break;
        default: break;
    }

    return 0;
}



[ 本帖最后由 pangding 于 2011-3-24 22:26 编辑 ]
2011-03-24 22:13
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
第二个,用 % 就行。
如果 x % 3 == 0 就说明 x 是 3 的倍数。

程序代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int x = 21;

    if (x%3 == 0) {
        if (x%7 == 0)
            puts("x is the multiple of both 3 and 7.");
        else
            puts("x is the multiple of 3, but not 7.");
    } else {
        if (x%7 == 0)
            puts("x is the multiple of 7, but not 3.");
        else
            puts("x is neither the multiple of 3 nor 7.");
    }

    return 0;
}



[ 本帖最后由 pangding 于 2011-3-24 22:25 编辑 ]
2011-03-24 22:15
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:5 
楼上完美解决~
2011-03-26 00:27
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:5 
以下是引用pangding在2011-3-24 22:13:21的发言:

第一个可以用一个 switch 来做。
应该是书上的例题吧?
int main(int argc, char *argv[])
{
    int score = 85;
   
 
    switch (score/10) {
        case 10:
        case 9: puts("A grade"); break;
        case 8: puts("B grade"); break;
        case 7: puts("C grade"); break;
        case 6: puts("D grade"); break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0: puts("Not passed"); break;
        default: break;
    }
 
    return 0;
}
这样写不满足题意。
不可以写/10,这样至判断90 80 70 60可以用if,不要用switch()
程序代码:
#include<iostream>
using namespace std;
main()
{……
if(score>=90)puts("A grade"); 
else if(score>=80)puts("B grade");
else if(score>=70)puts("C grade");
else if(score>=60)puts("D grade");
else cout<<"Not passed "<<endl;   
……
}    //C++这样写,因为用了cout   VC++中可以使用中文!输出 优秀 合格 不合格

         
 

[ 本帖最后由 lyj23 于 2011-3-26 12:05 编辑 ]
2011-03-26 11:59
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:0 
以下是引用owen1992在2011-3-24 21:30:23的发言:

1.编写程序:输入一门课程的成绩,若高于90分,输出“A  grade ”;若高于80分而低于90分,输出“B grade ”;若高于70分而低于80分,输出“C  grade ”;

若高于60分而低于70分,输出“D  grade ”;否则输出“Not passed ”。

我已解决。



2.编写程序: 输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。

(1) 是3的倍数,但不是7的倍数。

(2) 不是3的倍数,是7的倍数。

(3) 是3的倍数,也是7的倍数。

(4) 既不是3的被数,也不是7的倍数
如题2
程序代码:
#include<iostream>
using namespace std;
main()
{
void abc();
abc();
}
void abc()
{
int n;
char x;
cout<<"是否开始判断:(Y/N)>"<<endl;
cin>>x;
if(x=='Y'||x=='y')
while(1)
{
cout<<"输入一个数"<<endl;
cin>>n;
if(n%3==0)
    if(n%7!=0)
        cout<<"是3的倍数,但不是7的倍数."<<endl;
else if(n%7==0)
        cout<<"是3的倍数,也是7的倍数。"<<endl;
if(n%7==0)
    if(n%3!=0)
        cout<<"不是3的倍数,是7的倍数。"<<endl;
if(n%7!=0&&n%3!=0)
        cout<<"既不是3的被数,也不是7的倍数."<<endl;
}
else cout<<"exit"<<endl;
}

2011-03-26 12:17
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 5楼 lyj23
我也没太想过这样是不是符合题意。
不过即使不是整十的,我的算法肯定也能用,如我举的例子。85/10 = 8,在整数里就是这样。

楼主问的都是成题,像第一题这种的,标答肯定是用 switch。

如果不是在做题的话,用什么方法都行。如果是做题的话,讨好断卷的人还是有点好处的。
2011-03-26 12:53
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:0 
回复 7楼 pangding
我没有见过什么试卷,我才初一,是个编程爱好者!但是——
1.编写程序:输入一门课程的成绩,若高于90分,输出“A  grade ”;若高于80分而低于90分,输出“B grade ”;若高于70分而低于80分,输出“C  grade ”;
若高于60分而低于70分,输出“D  grade ”;否则输出“Not passed ”。
这里写的是“高于60分而低于70分”,我觉得应该不是依靠整型直接把小数点后的去掉这个特性来做的吧!
我认为这题目像方程,把题目的原意一步一步地翻译成计算机语言,不漏过几个字!
这道题目是简单地不能再简单了,也许我是没有经验,您应该算我的老师,以后碰到真正比较难的题目,看看是不是您的算法更精辟……

我感觉你的算法有点“偷鸡摸狗”或者说是很灵活,我还是觉得if()比较可靠

还有,85/10的结果是8,我都没有想起来!
THANK YOU!这方法领教了
2011-03-26 14:36
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
你写的代码和我的逻辑其实一样。
人家说 80 以上,90 以下,但你写的 if 也是
if (x >= 80) ...
这个逻辑其实很简单,就是如果上面的的 if (x >= 90) 不成立,已经暗示 x 肯定小于 90,不用重复判断。
我那个也一样。

这种最多只能算是代码精辟,不能算是算法精辟。
好的代码就是靠背的,积累经验。很多优雅的代码,如果有爱,就要背下来,不能指望自己也能想到。
2011-03-26 20:00
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
收藏
得分:5 
才初一,
2011-03-31 22:36
快速回复:上课听得不是很明白,有几个简单的题目不会做,希望高手指教一下,谢了 ...
数据加载中...
 
   



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

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