C语言练习:if语句

C语言练习题:if语句(12题)

下一篇: C语言练习题:循环部分

判定三角形类型

/*
    __author__ = 'xiaofeizhang'
    函数作用:判定三角形类型 
*/ 
#include <stdio.h>
int main(void){
    float a, b, c;
    printf("请输入第一条边的长度:%f", &a);
    scanf("%f", &a);
    printf("第一条边的长度为:%f\n", a);
    printf("请输入第二条边的长度:%f", &b);
    scanf("%f", &b);
    printf("请输入第三条边的长度:%f", &c);
    scanf("%f", &c);
    if (a>=b+c || b>=a+c || c>=a+b){
        printf("这三条边无法组成一个三角形\n"); 
    }
    else{
        if (a==b && a==c && b==c){
            printf("这是一个等边三角形\n");
        }
        else if (a==b || a==c || b==c){
            printf("这是一个等腰三角形\n"); 
        }
        else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
            printf("这是一个直角三角形");
        } 
    }
    return 0; 
}

/*
请输入第一条边的长度:0.0000001
第一条边的长度为:1.000000
请输入第二条边的长度:0.0000002
请输入第三条边的长度:0.0000003
这三条边无法组成一个三角形

--------------------------------
Process exited after 2.5 seconds with return value 0
请按任意键继续. . .

*/ 

根据x的不同,输出不同的y

/*
    __author__ = 'xiaofeizhang'
    函数作用: 根据x的不同,输出不同的y
*/
#include<stdio.h>
int main(void){
    int x, y; 
    printf("请输入x的值:");
    scanf("%d", &x);
    if(x>0){
        y = 1;
    }
    else if (x == 0){
        y = 0;
    }
    else{
        y = -1;
    }
    printf("y的值为%d", y);
    return 0;
} 

/*
请输入x的值:-1
y的值为-1

请输入x的值:0
y的值为0

请输入x的值:1
y的值为1
--------------------------------
Process exited after 0.975 seconds with return value 0
请按任意键继续. . .

*/ 

判定某年某月有多少天

/*
    __author__ ='xiaofeizhang'
    函数作用:判定某年某月有多少天
*/
#include<stdio.h>
int main(void){
    int year, month, days=0; 
    printf("请输入年份: ");
    scanf("%d", &year);
    printf("请输入月份: "); 
    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("输入的时间有问题");
         
    }
    return 0;
}

/*
请输入年份: 2019
请输入月份: 2
2019年2月有28天
--------------------------------
Process exited after 4.642 seconds with return value 0
请按任意键继续. . .
*/ 

简单计算器

/*
    __author__ ='xiaofeizhang'
    函数作用:简单计算器 
*/

#include <stdio.h>
int main(void){
    float a, b;
    int symbol;
    printf("请输入第一个操作数:");
    scanf("%f", &a);
    printf("请输入第二个操作数:");
    scanf("%f", &b);
    printf("请输入操作符\n");
    printf("1: 为乘法 *\n");
    printf("2: 为除法 /\n");
    printf("3: 为加法 +\n");
    printf("4:为减法 -\n");
    printf("请输入:"); 
    scanf("%d", &symbol);  //找问题,找了半天,最后才发现是scanf函数输入格式有问题,记住这个取地址符号& 
    
    switch(symbol){
        case 1: printf("结果为:%f", a*b); break; 
        case 2: printf("%f 除以 %f 的结果为:%f\n", a, b, a/b); break;
        case 3: printf("%f 加上 %f 的结果为:%f\n", a, b, a+b); break;
        case 4: printf("%f 减去 %f 的结果为:%f\n", a, b, a-b); break;
        default: printf("输入的操作符可能有些问题,请检查后重新输入"); 
    } 
    return 0;
}

/*
请输入第一个操作数:2
请输入第二个操作数:3
请输入操作符
1: 为乘法 *
2: 为除法 /
3: 为加法 +
4:为减法 -
请输入:3
2.000000 加上 3.000000 的结果为:5.000000

--------------------------------
Process exited after 8.262 seconds with return value 0
请按任意键继续. . .

*/ 

判定一个数字能否被7整除

/*
    __author__ ='xiaofeizhang'
    函数作用: 判定一个数字能否被7整除
*/
#include <stdio.h>
int main(void){
    int num;
    printf("请输入一个正数:"); 
    scanf("%d", &num); 
    // 输入的字符串中如果含有数字和字母,输入函数会从第一位开始寻找数字,找到就输出,找不到就截止对应 
    // 如果首位为字母,直接输出0 
    if (num%7==0 && num%11==0){
        printf("输入的数值为:%d, 该数能否被7或者11整除:Yes\n", num); 
    }
    else{
        printf("输入的数值为:%d, 该数能否被7或者11整除:No\n", num);
    }
    return 0;
}

/*
请输入一个正数:18
输入的数值为:18, 该数能否被7或者11整除:No

--------------------------------
Process exited after 2.748 seconds with return value 0
请按任意键继续. . .
*/

判断一个数是否为整数

/*
    __author__ ='xiaofeizhang'
    函数作用: 判断一个数是否为整数
*/

#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("输入数据的类型为数值类型");
    }
    else {
        printf("输入的类型不为数值类型");
    }
    return 0; 
} 

/*
输入的类型不为数值类型
--------------------------------
Process exited after 0.0212 seconds with return value 0
请按任意键继续. . .
*/

求解二元一次方程的解

/*
    __author__ ='xiaofeizhang'
    函数作用: 求解二元一次方程的解
*/

#include <stdio.h>
#include <math.h>
int main(void){
    float a, b, c, delta;
    float x1, x2;
    printf("请输入系数a: "); 
    scanf("%f", &a);
    printf("请输入系数b: "); 
    scanf("%f", &b);
    printf("请输入系数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("该方程无解"); 
        } 
        else if (delta==0){
            x1 = -b / (2 * a); 
            printf("该方程有两个相同的解, %f, %f\n", x1, x1);
        }
        else {
            x1 = (-b + sqrt(delta)) / (2 * a); 
            x2 = (-b - sqrt(delta)) / (2 * a);
            printf("该方程有两个不相同的解,解一为:%f, 解二为:%f\n", x1, x2); 
        }

    }
    else{
        printf("这不是一个二元一次方程"); 
    }
    
    return 0;
} 

/*
请输入系数a: 2
请输入系数b: 4
请输入系数c: 1
delta的值为:8.000000
该方程有两个不相同的解,解一为:-0.292893, 解二为:-1.707107

--------------------------------
Process exited after 4.65 seconds with return value 0
请按任意键继续. . .
*/

确定一个正数的位数以及反转

/*
    __author__ ='xiaofeizhang'
    函数作用: 确定一个正数的位数以及反转
*/

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

int main(void){
    int symbol, symbol_copy, len=0, symbol_reverse=0, tmp;
    printf("请输入一个位数不多于4位的正整数:");
//  scanf("%c", &symbol); // strlen函数为 返回字符串的长度     
//  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 的位数为 %d\n", symbol_copy, len);
    printf("%d这个序列的反序列为: %d", symbol_copy, symbol_reverse);
} 

/*
请输入一个位数不多于4位的正整数:399
399 的位数为 3
399这个序列的反序列为: 993
--------------------------------
Process exited after 4.271 seconds with return value 0
请按任意键继续. . .
*/

使用随机函数

/*
    __author__ ='xiaofeizhang'
    函数作用: 使用随机函数
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void){
    int num, rnd;
    srand(time(NULL)); //srand 返回的是随机数序列, time(NULL)返回的是从1970/1/1/0/0/0到当前时间的秒数
    printf("已经过去多少%d秒了\n", time(NULL)); 
//  rnd = rand(); //该随机函数确实可以生成一个随机数,该数的范围为0~Rand_max之间,但是时伪随机数 
    rnd = rand()%100+1; //该随机数的范围为1~100之间 
    printf("预设值为:%d\n", rnd);
    printf("猜猜看(1-100之间):");
    scanf("%d", &num);
    if (num>rnd){
        printf("猜大了哟"); 
    } 
    else if (num<rnd){
        printf("猜小了哟"); 
    }
    else{
        printf("恭喜你,猜对了");
    } 
    return 0;
}

/*
已经过去多少1546506166秒了
预设值为:16
猜猜看(1-100之间):2
猜小了哟
--------------------------------
Process exited after 6.061 seconds with return value 0
请按任意键继续. . .
*/

输入三个数,并按照从小到大顺序排列

/*
    __author__ = 'xiaofeizhang'
    函数作用:输入三个数,并按照从小到大的顺序排列 
*/
#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("请输入a:\n"); 
    scanf("%d", &a);
    printf("请输入b:\n"); 
    scanf("%d", &b);
    printf("请输入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("这组数据从小到大为:%d, %d, %d\n",  new_3, new_2, new_1);
    
    count = check("12345.6");
    if (count){
        printf("输入数据的类型为数值类型");
    }
    else {
        printf("输入的类型不为数值类型");
    }
    return 0; 
} 

/*
请输入a:
123
请输入b:
321
请输入c:
456
这组数据从小到大为:123, 321, 456
输入的类型不为数值类型
--------------------------------
Process exited after 5.888 seconds with return value 0
请按任意键继续. . .

*/ 

自动售卖机

/*
    __author__ = 'xiaofeizhang'
    函数作用:自动售卖机 
*/

#include <stdio.h>
int main(void){
    int choice;
    printf("  ***** 自动售卖机清单 *****\n");
    printf("  ***** 1. 瓜子        *****\n"); 
    printf("  ***** 2. 花生        *****\n");
    printf("  ***** 3. 爆米花      *****\n");
    printf("  ***** 4. 可乐        *****\n");
    printf("  ***** 5. 雪碧        *****\n");
    printf("  ***** 6. 果汁        *****\n");
    printf("  ***** 7. 咖啡        *****\n");
    printf("请输入你想购买的物品序号(1-7):\n");
    scanf("%d", &choice);
    switch (choice){
        case 1: printf("这是你购买的瓜子\n"); break; 
        case 2: printf("这是你购买的花生\n"); break;
        case 3: printf("这是你购买的爆米花\n"); break;
        case 4: printf("这是你购买的可乐\n"); break;
        case 5: printf("这是你购买的雪碧\n"); break;
        case 6: printf("这是你购买的果汁\n"); break;
        case 7: printf("这是你购买的咖啡\n"); break;
        default: printf("你下的单有问题,请检查后,在重新下单\n"); 
    } 
    return 0;
} 

/*
  ***** 自动售卖机清单 *****
  ***** 1. 瓜子        *****
  ***** 2. 花生        *****
  ***** 3. 爆米花      *****
  ***** 4. 可乐        *****
  ***** 5. 雪碧        *****
  ***** 6. 果汁        *****
  ***** 7. 咖啡        *****
请输入你想购买的物品序号(1-7):
6
这是你购买的果汁

--------------------------------
Process exited after 3.891 seconds with return value 0
请按任意键继续. . .

*/ 

字符转换

/*
    __author__ = 'xiaofeizhang'
    函数作用:字符转换
*/

#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
    char symbol, symbol_change;
    printf("请输入要转化的内容(大写字母,小写字母,数字):");
    symbol = getchar();
    if ('A'<=symbol && symbol<='Z'){
        symbol_change = symbol + 32;
        printf("本次输入的字符为:%c\n", symbol);
        printf("转化以后的字符为:%c\n", symbol_change); 
    }
    else if ('0'<=symbol && symbol<='9'){
        symbol_change = symbol-48;
        printf("本次输入的字符为:%c\n", symbol);
        printf("转化以后的字符为:%d\n", symbol_change); 
    }
    else if ('a'<=symbol && symbol<='z'){
        symbol_change = symbol - 32;
        printf("本次输入的字符为:%c\n", symbol);
        printf("转化以后的字符为:%c\n", symbol_change); 
    }
    else {
        printf("输入的字符可能不在本次转化的考察范围之内\n");
        exit(0); 
    }
    
    return 0;
}

/*
请输入要转化的内容(大写字母,小写字母,数字):j
本次输入的字符为:j
转化以后的字符为:J

--------------------------------
Process exited after 3.495 seconds with return value 0
请按任意键继续. . .

*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352