C語(yǔ)言練習(xí):if語(yǔ)句

C語(yǔ)言練習(xí)題:if語(yǔ)句(12題)

下一篇: C語(yǔ)言練習(xí)題:循環(huán)部分

判定三角形類型

/*
    __author__ = 'xiaofeizhang'
    函數(shù)作用:判定三角形類型 
*/ 
#include <stdio.h>
int main(void){
    float a, b, c;
    printf("請(qǐng)輸入第一條邊的長(zhǎng)度:%f", &a);
    scanf("%f", &a);
    printf("第一條邊的長(zhǎng)度為:%f\n", a);
    printf("請(qǐng)輸入第二條邊的長(zhǎng)度:%f", &b);
    scanf("%f", &b);
    printf("請(qǐng)輸入第三條邊的長(zhǎng)度:%f", &c);
    scanf("%f", &c);
    if (a>=b+c || b>=a+c || c>=a+b){
        printf("這三條邊無(wú)法組成一個(gè)三角形\n"); 
    }
    else{
        if (a==b && a==c && b==c){
            printf("這是一個(gè)等邊三角形\n");
        }
        else if (a==b || a==c || b==c){
            printf("這是一個(gè)等腰三角形\n"); 
        }
        else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
            printf("這是一個(gè)直角三角形");
        } 
    }
    return 0; 
}

/*
請(qǐng)輸入第一條邊的長(zhǎng)度:0.0000001
第一條邊的長(zhǎng)度為:1.000000
請(qǐng)輸入第二條邊的長(zhǎng)度:0.0000002
請(qǐng)輸入第三條邊的長(zhǎng)度:0.0000003
這三條邊無(wú)法組成一個(gè)三角形

--------------------------------
Process exited after 2.5 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/ 

根據(jù)x的不同鳍侣,輸出不同的y

/*
    __author__ = 'xiaofeizhang'
    函數(shù)作用: 根據(jù)x的不同宪潮,輸出不同的y
*/
#include<stdio.h>
int main(void){
    int x, y; 
    printf("請(qǐng)輸入x的值:");
    scanf("%d", &x);
    if(x>0){
        y = 1;
    }
    else if (x == 0){
        y = 0;
    }
    else{
        y = -1;
    }
    printf("y的值為%d", y);
    return 0;
} 

/*
請(qǐng)輸入x的值:-1
y的值為-1

請(qǐng)輸入x的值:0
y的值為0

請(qǐng)輸入x的值:1
y的值為1
--------------------------------
Process exited after 0.975 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/ 

判定某年某月有多少天

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用:判定某年某月有多少天
*/
#include<stdio.h>
int main(void){
    int year, month, days=0; 
    printf("請(qǐng)輸入年份: ");
    scanf("%d", &year);
    printf("請(qǐng)輸入月份: "); 
    scanf("%d", &month); 
    switch (month){
        case 1:;
        case 3:;
        case 5:;
        case 7:;
        case 8:;
        case 10:;
        case 12: days = 31; break;
        case 4:;
        case 6:;
        case 9:;
        case 11: days = 30; break;
        case 2: if ((year%4==0 && year%100!=0)||year%400==0){
            days = 29;      }
                else{
                    days = 28;
                    break;
                }
    }
    if (days != 0){
        printf("%d年%d月有%d天", year,month,days);
    } 
    else {
        printf("輸入的時(shí)間有問(wèn)題");
         
    }
    return 0;
}

/*
請(qǐng)輸入年份: 2019
請(qǐng)輸入月份: 2
2019年2月有28天
--------------------------------
Process exited after 4.642 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/ 

簡(jiǎn)單計(jì)算器

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用:簡(jiǎn)單計(jì)算器 
*/

#include <stdio.h>
int main(void){
    float a, b;
    int symbol;
    printf("請(qǐng)輸入第一個(gè)操作數(shù):");
    scanf("%f", &a);
    printf("請(qǐng)輸入第二個(gè)操作數(shù):");
    scanf("%f", &b);
    printf("請(qǐng)輸入操作符\n");
    printf("1: 為乘法 *\n");
    printf("2: 為除法 /\n");
    printf("3: 為加法 +\n");
    printf("4:為減法 -\n");
    printf("請(qǐng)輸入:"); 
    scanf("%d", &symbol);  //找問(wèn)題匈辱,找了半天,最后才發(fā)現(xiàn)是scanf函數(shù)輸入格式有問(wèn)題望艺,記住這個(gè)取地址符號(hào)& 
    
    switch(symbol){
        case 1: printf("結(jié)果為:%f", a*b); break; 
        case 2: printf("%f 除以 %f 的結(jié)果為:%f\n", a, b, a/b); break;
        case 3: printf("%f 加上 %f 的結(jié)果為:%f\n", a, b, a+b); break;
        case 4: printf("%f 減去 %f 的結(jié)果為:%f\n", a, b, a-b); break;
        default: printf("輸入的操作符可能有些問(wèn)題陕贮,請(qǐng)檢查后重新輸入"); 
    } 
    return 0;
}

/*
請(qǐng)輸入第一個(gè)操作數(shù):2
請(qǐng)輸入第二個(gè)操作數(shù):3
請(qǐng)輸入操作符
1: 為乘法 *
2: 為除法 /
3: 為加法 +
4:為減法 -
請(qǐng)輸入:3
2.000000 加上 3.000000 的結(jié)果為:5.000000

--------------------------------
Process exited after 8.262 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/ 

判定一個(gè)數(shù)字能否被7整除

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用: 判定一個(gè)數(shù)字能否被7整除
*/
#include <stdio.h>
int main(void){
    int num;
    printf("請(qǐng)輸入一個(gè)正數(shù):"); 
    scanf("%d", &num); 
    // 輸入的字符串中如果含有數(shù)字和字母,輸入函數(shù)會(huì)從第一位開始尋找數(shù)字封救,找到就輸出,找不到就截止對(duì)應(yīng) 
    // 如果首位為字母捣作,直接輸出0 
    if (num%7==0 && num%11==0){
        printf("輸入的數(shù)值為:%d, 該數(shù)能否被7或者11整除:Yes\n", num); 
    }
    else{
        printf("輸入的數(shù)值為:%d, 該數(shù)能否被7或者11整除:No\n", num);
    }
    return 0;
}

/*
請(qǐng)輸入一個(gè)正數(shù):18
輸入的數(shù)值為:18, 該數(shù)能否被7或者11整除:No

--------------------------------
Process exited after 2.748 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/

判斷一個(gè)數(shù)是否為整數(shù)

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用: 判斷一個(gè)數(shù)是否為整數(shù)
*/

#include <stdio.h>
bool check(const char *p) {
    if(p == NULL) 
        return 0;
    else {
        while(*p != '\0') {
            if(*p <= '9' && *p++ >= '0')
                continue;
            else 
                return 0;
        }
    }
    return 1;
}


int main() 
{
    bool count;
    bool check(const char *p);
    count = check("123456.");
    if (count){
        printf("輸入數(shù)據(jù)的類型為數(shù)值類型");
    }
    else {
        printf("輸入的類型不為數(shù)值類型");
    }
    return 0; 
} 

/*
輸入的類型不為數(shù)值類型
--------------------------------
Process exited after 0.0212 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/

求解二元一次方程的解

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用: 求解二元一次方程的解
*/

#include <stdio.h>
#include <math.h>
int main(void){
    float a, b, c, delta;
    float x1, x2;
    printf("請(qǐng)輸入系數(shù)a: "); 
    scanf("%f", &a);
    printf("請(qǐng)輸入系數(shù)b: "); 
    scanf("%f", &b);
    printf("請(qǐng)輸入系數(shù)c: "); 
    scanf("%f", &c);
//  a = 1; b= 2; c=1;
    if (a > 0 || a<0 ){
        delta = b*b - 4*a*c;
        printf("delta的值為:%lf\n", delta);
        if (delta<0){
            printf("該方程無(wú)解"); 
        } 
        else if (delta==0){
            x1 = -b / (2 * a); 
            printf("該方程有兩個(gè)相同的解, %f, %f\n", x1, x1);
        }
        else {
            x1 = (-b + sqrt(delta)) / (2 * a); 
            x2 = (-b - sqrt(delta)) / (2 * a);
            printf("該方程有兩個(gè)不相同的解誉结,解一為:%f, 解二為:%f\n", x1, x2); 
        }

    }
    else{
        printf("這不是一個(gè)二元一次方程"); 
    }
    
    return 0;
} 

/*
請(qǐng)輸入系數(shù)a: 2
請(qǐng)輸入系數(shù)b: 4
請(qǐng)輸入系數(shù)c: 1
delta的值為:8.000000
該方程有兩個(gè)不相同的解券躁,解一為:-0.292893惩坑, 解二為:-1.707107

--------------------------------
Process exited after 4.65 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/

確定一個(gè)正數(shù)的位數(shù)以及反轉(zhuǎn)

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用: 確定一個(gè)正數(shù)的位數(shù)以及反轉(zhuǎn)
*/

#include <stdio.h>
#include<string.h>

int main(void){
    int symbol, symbol_copy, len=0, symbol_reverse=0, tmp;
    printf("請(qǐng)輸入一個(gè)位數(shù)不多于4位的正整數(shù):");
//  scanf("%c", &symbol); // strlen函數(shù)為 返回字符串的長(zhǎng)度     
//  len = strlen(symbol);
    scanf("%d", &symbol);
     symbol_copy = symbol;
    while (symbol)
    {
        tmp = symbol % 10;
        symbol_reverse = symbol_reverse * 10 + tmp;
        symbol = symbol / 10;
        len++;
    }
    printf("%d 的位數(shù)為 %d\n", symbol_copy, len);
    printf("%d這個(gè)序列的反序列為: %d", symbol_copy, symbol_reverse);
} 

/*
請(qǐng)輸入一個(gè)位數(shù)不多于4位的正整數(shù):399
399 的位數(shù)為 3
399這個(gè)序列的反序列為: 993
--------------------------------
Process exited after 4.271 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/

使用隨機(jī)函數(shù)

/*
    __author__ ='xiaofeizhang'
    函數(shù)作用: 使用隨機(jī)函數(shù)
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void){
    int num, rnd;
    srand(time(NULL)); //srand 返回的是隨機(jī)數(shù)序列, time(NULL)返回的是從1970/1/1/0/0/0到當(dāng)前時(shí)間的秒數(shù)
    printf("已經(jīng)過(guò)去多少%d秒了\n", time(NULL)); 
//  rnd = rand(); //該隨機(jī)函數(shù)確實(shí)可以生成一個(gè)隨機(jī)數(shù)也拜,該數(shù)的范圍為0~Rand_max之間以舒,但是時(shí)偽隨機(jī)數(shù) 
    rnd = rand()%100+1; //該隨機(jī)數(shù)的范圍為1~100之間 
    printf("預(yù)設(shè)值為:%d\n", rnd);
    printf("猜猜看(1-100之間):");
    scanf("%d", &num);
    if (num>rnd){
        printf("猜大了喲"); 
    } 
    else if (num<rnd){
        printf("猜小了喲"); 
    }
    else{
        printf("恭喜你,猜對(duì)了");
    } 
    return 0;
}

/*
已經(jīng)過(guò)去多少1546506166秒了
預(yù)設(shè)值為:16
猜猜看(1-100之間):2
猜小了喲
--------------------------------
Process exited after 6.061 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
*/

輸入三個(gè)數(shù)慢哈,并按照從小到大順序排列

/*
    __author__ = 'xiaofeizhang'
    函數(shù)作用:輸入三個(gè)數(shù)蔓钟,并按照從小到大的順序排列 
*/
#include <stdio.h>
bool check(const char *p) {
    if(p == NULL) 
        return 0;
    else {
        while(*p != '\0') {
            if(*p <= '9' && *p++ >= '0')
                continue;
            else 
                return 0;
        }
    }
    return 1;
}


int main() 
{
    int a, b, c;
    int new_1, new_2, new_3; 
    bool count;
    bool check(const char *p);
    printf("請(qǐng)輸入a:\n"); 
    scanf("%d", &a);
    printf("請(qǐng)輸入b:\n"); 
    scanf("%d", &b);
    printf("請(qǐng)輸入c:\n"); 
    scanf("%d", &c);
    if (a>=b && a>=c){
        new_1 = a;
        if (b>c){
            new_2 = b;
            new_3 = c;
        }
        else {
            new_2 = c;
            new_3 = b;
        } 
    }
    
    if (b>=a && b>=c){
        new_1 = b;
        if (a>=c){
            new_2 = a;
            new_3 = c;
        }
        else {
            new_2 = c;
            new_3 = a;
        } 
    } 
    
    if (c>=a && c>=b){
        new_1 = c;
        if (a>=b){
            new_2 = a;
            new_3 = b;
        }
        else {
            new_2 = b;
            new_3 = a;
        } 
    }
    
    printf("這組數(shù)據(jù)從小到大為:%d, %d, %d\n",  new_3, new_2, new_1);
    
    count = check("12345.6");
    if (count){
        printf("輸入數(shù)據(jù)的類型為數(shù)值類型");
    }
    else {
        printf("輸入的類型不為數(shù)值類型");
    }
    return 0; 
} 

/*
請(qǐng)輸入a:
123
請(qǐng)輸入b:
321
請(qǐng)輸入c:
456
這組數(shù)據(jù)從小到大為:123, 321, 456
輸入的類型不為數(shù)值類型
--------------------------------
Process exited after 5.888 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/ 

自動(dòng)售賣機(jī)

/*
    __author__ = 'xiaofeizhang'
    函數(shù)作用:自動(dòng)售賣機(jī) 
*/

#include <stdio.h>
int main(void){
    int choice;
    printf("  ***** 自動(dòng)售賣機(jī)清單 *****\n");
    printf("  ***** 1. 瓜子        *****\n"); 
    printf("  ***** 2. 花生        *****\n");
    printf("  ***** 3. 爆米花      *****\n");
    printf("  ***** 4. 可樂(lè)        *****\n");
    printf("  ***** 5. 雪碧        *****\n");
    printf("  ***** 6. 果汁        *****\n");
    printf("  ***** 7. 咖啡        *****\n");
    printf("請(qǐng)輸入你想購(gòu)買的物品序號(hào)(1-7):\n");
    scanf("%d", &choice);
    switch (choice){
        case 1: printf("這是你購(gòu)買的瓜子\n"); break; 
        case 2: printf("這是你購(gòu)買的花生\n"); break;
        case 3: printf("這是你購(gòu)買的爆米花\n"); break;
        case 4: printf("這是你購(gòu)買的可樂(lè)\n"); break;
        case 5: printf("這是你購(gòu)買的雪碧\n"); break;
        case 6: printf("這是你購(gòu)買的果汁\n"); break;
        case 7: printf("這是你購(gòu)買的咖啡\n"); break;
        default: printf("你下的單有問(wèn)題,請(qǐng)檢查后卵贱,在重新下單\n"); 
    } 
    return 0;
} 

/*
  ***** 自動(dòng)售賣機(jī)清單 *****
  ***** 1. 瓜子        *****
  ***** 2. 花生        *****
  ***** 3. 爆米花      *****
  ***** 4. 可樂(lè)        *****
  ***** 5. 雪碧        *****
  ***** 6. 果汁        *****
  ***** 7. 咖啡        *****
請(qǐng)輸入你想購(gòu)買的物品序號(hào)(1-7):
6
這是你購(gòu)買的果汁

--------------------------------
Process exited after 3.891 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/ 

字符轉(zhuǎn)換

/*
    __author__ = 'xiaofeizhang'
    函數(shù)作用:字符轉(zhuǎn)換
*/

#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    char symbol, symbol_change;
    printf("請(qǐng)輸入要轉(zhuǎn)化的內(nèi)容(大寫字母滥沫,小寫字母,數(shù)字):");
    symbol = getchar();
    if ('A'<=symbol && symbol<='Z'){
        symbol_change = symbol + 32;
        printf("本次輸入的字符為:%c\n", symbol);
        printf("轉(zhuǎn)化以后的字符為:%c\n", symbol_change); 
    }
    else if ('0'<=symbol && symbol<='9'){
        symbol_change = symbol-48;
        printf("本次輸入的字符為:%c\n", symbol);
        printf("轉(zhuǎn)化以后的字符為:%d\n", symbol_change); 
    }
    else if ('a'<=symbol && symbol<='z'){
        symbol_change = symbol - 32;
        printf("本次輸入的字符為:%c\n", symbol);
        printf("轉(zhuǎn)化以后的字符為:%c\n", symbol_change); 
    }
    else {
        printf("輸入的字符可能不在本次轉(zhuǎn)化的考察范圍之內(nèi)\n");
        exit(0); 
    }
    
    return 0;
}

/*
請(qǐng)輸入要轉(zhuǎn)化的內(nèi)容(大寫字母艰赞,小寫字母佣谐,數(shù)字):j
本次輸入的字符為:j
轉(zhuǎn)化以后的字符為:J

--------------------------------
Process exited after 3.495 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .

*/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市方妖,隨后出現(xiàn)的幾起案子狭魂,更是在濱河造成了極大的恐慌,老刑警劉巖党觅,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雌澄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡杯瞻,警方通過(guò)查閱死者的電腦和手機(jī)镐牺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)魁莉,“玉大人睬涧,你說(shuō)我怎么就攤上這事∑煅洌” “怎么了畦浓?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)检疫。 經(jīng)常有香客問(wèn)我讶请,道長(zhǎng),這世上最難降的妖魔是什么屎媳? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任夺溢,我火速辦了婚禮论巍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘风响。我一直安慰自己嘉汰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布钞诡。 她就那樣靜靜地躺著郑现,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荧降。 梳的紋絲不亂的頭發(fā)上接箫,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音朵诫,去河邊找鬼辛友。 笑死,一個(gè)胖子當(dāng)著我的面吹牛剪返,可吹牛的內(nèi)容都是我干的废累。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼脱盲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邑滨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起钱反,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掖看,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后面哥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎壳,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年尚卫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了归榕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吱涉,死狀恐怖刹泄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怎爵,我是刑警寧澤循签,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站疙咸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏风科。R本人自食惡果不足惜撒轮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一乞旦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧题山,春花似錦兰粉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至慨菱,卻和暖如春焰络,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背符喝。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工闪彼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人协饲。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓畏腕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親茉稠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子描馅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351