2017實驗3 分支結構程序設計

7-2 比較大?。?0 分)
本題要求將輸入的任意3個整數從小到大輸出。
輸入格式:
輸入在一行中給出3個整數,其間以空格分隔。
輸出格式:
在一行中將3個整數從小到大輸出,其間以“->”相連。
輸入樣例:

4 2 8

輸出樣例:

2->4->8

程序源碼



#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if (a > b) {
        int temp1 = a;
        a = b;
        b = temp1;
    }
    if (a > c) {
        int temp2 = a;
        a = c;
        c = temp2;
    }
    if (b > c) {
        int temp3 = b;
        b = c;
        c = temp3;
    }
    printf("%d->%d->%d",a,b,c);
    return EXIT_SUCCESS;
}

7-3 兩個數的簡單計算器(10 分)
本題要求編寫一個簡單計算器程序,可根據輸入的運算符,對2個整數進行加、減、乘、除或求余運算。題目保證輸入和輸出均不超過整型范圍。
輸入格式:
輸入在一行中依次輸入操作數1、運算符、操作數2,其間以1個空格分隔。操作數的數據類型為整型,且保證除法和求余的分母非零。
輸出格式:
當運算符為+、-、*、/、%時,在一行輸出相應的運算結果。若輸入是非法符號(即除了加、減、乘、除和求余五種運算符以外的其他符號)則輸出ERROR。

輸入樣例1:

-7 / 2

輸出樣例1:

-3

輸入樣例2:

3 & 6

輸出樣例2:

ERROR

程序源碼

#include<stdio.h>
int main(){
    int num1,num2;
    char op;
    scanf("%d %c %d",&num1,&op,&num2);
    switch(op){
        case'+':printf("%d",num1+num2);break;
        case'-':printf("%d",num1-num2);break;
        case'*':printf("%d",num1*num2);break;
        case'/':printf("%d",num1/num2);break;
        case'%':printf("%d",num1%num2);break;
        default:printf("ERROR");break;
    }
    return 0;
}

7-7 計算油費(15 分)
現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。

本題要求編寫程序,根據輸入顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助),計算并輸出應付款。

輸入格式:

輸入在一行中給出兩個整數和一個字符,分別表示顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助)。

輸出格式:

在一行中輸出應付款額,保留小數點后2位。

輸入樣例:

40 97 m

輸出樣例:

301.34

程序源碼

#include<stdio.h>
int main() {
    int num1,num2;
    char c;
    scanf("%d %d %c",&num1,&num2,&c);
    switch(num2) {
        case 90:
            switch(c) {
                case 'm':
                    printf("%.2lf",num1*6.95*0.95);
                    break;
                case 'e':
                    printf("%.2lf",num1*6.95*0.97);
                    break;
            }
            break;
        case 93:
            switch(c) {
                case 'm':
                    printf("%.2lf",num1*7.44*0.95);
                    break;
                case 'e':
                    printf("%.2lf",num1*7.44*0.97);
                    break;
            }
            break;
        case 97:
            switch(c) {
                case 'm':
                    printf("%.2lf",num1*7.93*0.95);
                    break;
                case 'e':
                    printf("%.2lf",num1*7.93*0.97);
                    break;
            }
            break;

    }
    return 0;
}

7-8 輸出閏年(15 分)
輸出21世紀中截止某個年份以來的所有閏年年份。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。

輸入格式:

輸入在一行中給出21世紀的某個截止年份。

輸出格式:

逐行輸出滿足條件的所有閏年年份,即每個年份占一行。輸入若非21世紀的年份則輸出"Invalid year!"。若不存在任何閏年,則輸出“None”。

輸入樣例1:

2048

輸出樣例1:

2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048

輸入樣例2:

2000

輸出樣例2:

Invalid year!

程序源碼

#include<stdio.h>
int main() {
    int year,count=0;
    scanf("%d",&year);
    if(year>2100||year<=2000) {
        printf("Invalid year!");
    } else {
        for(int i=2001; i<=year; i++) {
            if((i%4==0&&i%100!=0)||(i%400==0)) {
                count=1;
                printf("%d\n",i);
            }
        }
    if(count==0){
            printf("None");
    }
    }
    
    return 0;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 3-1 求一元二次方程的根(20 分)本題目要求一元二次方程的根,結果保留2位小數。 輸入格式:輸入在一行中給出3...
    林之禾閱讀 23,480評論 0 7
  • 第1章 第一個C程序第2章 C語言基礎第3章 變量和數據類型第4章 順序結構程序設計第5章 條件結構程序設計第6章...
    小獅子365閱讀 10,718評論 3 71
  • 0.linux啟動的步驟 設備加電----》BIOS自檢-----》grub引導啟動-----》加載內核----》...
    萌面大叔2閱讀 794評論 0 1
  • 2016年是抑郁癥困擾的一年,經歷了連續痛苦的失眠,經常被恐懼驚醒。抑郁癥影響了我的各個方面,幾乎喪失了基本的社交...
    871263354579閱讀 138評論 0 0
  • 2/50 時間開銷記錄。培養的是對時間的感知力。鍛煉對時間的的察覺,盡最大力讓自己能夠意識到自己在做什么,而不是毫...
    Olivia愛雯閱讀 239評論 0 1