C/CPP基础练习题(一)运算符,判断

50 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情

1. 运算符

1. 设计一个程序, 输入三位数a, 分别输出个,十,百位.
(0<a<1000)
​
样例输入: 
251
​
样例输出: 
2
5
1
​
​
2. 设计一个程序, 输入整数l, 求边长为l的正方形面积, 比直径为l的圆形面积大多少.  
(0<l<1000, PI取3.14, 输出结果保留两位小数)
​
样例输入:
3
样例输出:
1.93
​

解答

1.输出个,十,百位

#include<iostream>
using namespace std;
​
void separate(int num)
{
    cout << num / 100 << endl;
    //cout << (num - (num / 100*100))/10 << endl;
    cout << num / 10 % 10 << endl;
    cout << num % 10 << endl;
}
​
int main()
{
    int num = 0;
​
    cout << "Input:" ; cin >> num;
​
    separate(num);
​
    system("pause"); return 0;
}
​
​

2.圆与正方形面积差

#include<iostream>
using namespace std;
​
#define PI 3.14float AreaDifference(int num)
{
    //cout << num*num - PI*(0.5)*num*(0.5)*num<< endl;
    return num * num - PI * num * num / 4 ;
}
​
int main()
{
    cout << "Input:"; double num = 0; cin >> num;
​
    cout << AreaDifference(num) << endl;
​
    system("pause"); return 0;
}

2. 判断

1. 设计一个程序, 输入a,b,c三个整数, 输出最大的数.
(MIN_INT < a,b,c < MAX_INT)
​
样例输入:
1 3 2
样例输出:
3
​
​
2. 打分系统
在某次考试时, 学生的提交成绩惨不忍睹
云海学长为了让大家及格可谓煞费苦心, 他苦思三天三夜, 终于想出了一套打分方案:
正确数量在0~10时, 每题6分
正确数量在11~20时, 第11~20题, 每题2分
正确数量在21~40时, 第21~40题, 每题1分
​
但因为需要计分的作业太多了, 希望你能帮帮云海学长, 实现该计分程序.
输入做对的题目数量n, 输出得分.
(0<=n<=40)
​
样例输入:
23
样例输出:
83
3. 东东哥上班
东东哥在上班途中, 可以选择走路和骑车两种方式
但他不清楚哪种方式比较快, 因为骑车需要找车, 开锁, 停车 需要耽搁很多时间.
设找到自行车, 开锁, 骑上自行车需要花27秒, 停车需要花23秒
步行每秒1.2米, 骑车每秒3.0米
给出东东哥距离公司的距离, 请问是骑车快还是走路快.
​
输入一个整数n, 表示到公司的距离
如果骑车快, 输出"骑车"
如果走路快, 输出"走路"
如果一样快, 输出"一样快"样例输入:
60
样例输出:
走路

解答

1.求最大值

#include<iostream>
using namespace std;
​
void AreaDifference(int a,int b,int c)
{
    a > b ? (a > c ? cout << a : cout << c) : (b > c ? cout << b : cout << c);
}
​
int main()
{
    cout << "Input:"; 
​
    int a = 0, b = 0, c = 0; 
    cin >> a; cin >> b; cin >> c;
​
    AreaDifference(a,b,c);
​
    system("pause"); return 0;
}
//最大数
void Demo21() {
    //--变量声明--
    //输入值
    int a, b, c;
    //最大值
    int max;
​
    //--接收输入--
    scanf_s("%d %d %d", &a, &b, &c);
​
    //--数据处理--
    max = a;
    if (b > max) {
        max = b;
    }
    if (c > max) {
        max = c;
    }
​
    //--输出--
    printf("%d", max);
}

2.打分系统

#include<iostream>
using namespace std;
​
int Score(int a)
{
    if (a >= 0 && a <= 10) {
        return a * 6;
    }
    else if (a >= 11 && a <= 20) {
        return a * 2;
    }
    else {
        return a * 1;
    }
}
​
int main()
{
    cout << "Input:"; 
​
    int a = 0; cin >> a;
    if (a >= 0 && a <= 40) { cout << Score(a) << endl; }
    else { cout << "输入错误" << endl; }
​
    system("pause"); return 0;
}
// 打分系统
void Demo22() {
    //--变量声明--
    // 输入
    int n;
    // 输出
    int result;
​
    //--接收输入--
    scanf_s("%d", &n);
​
    //--数据处理--
    if (n <= 10) result = n * 6;
    else if (n <= 20) result = 10 * 6 + (n - 10) * 2;
    else result = 10 * 6 + 10 * 2 + (n - 20) * 1;
​
    //--输出--
    printf("%d", result);
}

3.交通工具选择问题

#include<iostream>
using namespace std;
​
void Goout(int n)
{
    if ((n / 1.2) == (n / 3 + 27 + 23)) { cout << "一样快"<<endl; }// 注意double判断会有精度问题  不能直接判断==0,当前解法存在问题!
    else
    {
        (n / 1.2) < (n / 3 + 27 + 23) ? cout << "步行"<<endl : cout << "骑车"<<endl;
    }
}
​
int main()
{
    cout << "Input:"; 
    int n = 0; cin >> n;
​
    Goout(n);
​
    system("pause"); return 0;
}
// 上班
void Demo23() {
    //--变量声明--
    // 输入
    int n;
    // 负数表示骑车快, 正数表示走路快, 0表示一样快
    double result;
​
    //--接收输入--
    scanf_s("%d", &n);
​
    //--数据处理--
    //用骑车速度减去走路速度  如果是正数表示骑车耗时多
    result = (27 + 23 + n / 3.0) - (n / 1.2);
​
    //--输出--
    // 注意double判断会有精度问题  不能直接判断==0
    if (result < 0.0001) printf("骑车");
    else if (result > 0.0001) printf("走路");
    else printf("一样快");
}
​

\