美文网首页
C语言练习:if语句

C语言练习:if语句

作者: Aladdim | 来源:发表于2019-11-15 22:03 被阅读0次

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

1.判定三角形类型

/*
    __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
请按任意键继续. . .

*/ 

2.根据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
请按任意键继续. . .

*/ 

3.判定某年某月有多少天

/*
    __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
请按任意键继续. . .
*/ 

4.简单计算器

/*
    __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
请按任意键继续. . .

*/ 

5.判定一个数字能否被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
请按任意键继续. . .
*/

6.判断一个数是否为整数

/*
    __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
请按任意键继续. . .
*/

7.求解二元一次方程的解

/*
    __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
请按任意键继续. . .
*/

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

/*
    __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
请按任意键继续. . .
*/

9.使用随机函数

/*
    __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
请按任意键继续. . .
*/

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

/*
    __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
请按任意键继续. . .

*/ 

11.自动售卖机

/*
    __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
请按任意键继续. . .

*/ 

12.字符转换

/*
    __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
请按任意键继续. . .

*/

相关文章

  • C语言练习:if语句

    C语言练习题:if语句(12题) 1.判定三角形类型 2.根据x的不同,输出不同的y 3.判定某年某月有多少天 4...

  • C语言练习:if语句

    C语言练习题:if语句(12题) 下一篇: C语言练习题:循环部分 判定三角形类型 根据x的不同,输出不同的y 判...

  • C语言练习题:循环部分

    C语言练习题:循环部分(20题) 上一篇: C语言练习题:if语句部分 下一篇: C语言练习题:函数部分 求一正整...

  • C语言-循环语句 选择语句

    今天学习了C语言的循环语句,C语言中循环语句有for, while ,do while ,语句。 条件语句if ...

  • rust语句1

    常用的语言,表达式语句是语言的组成部分,rust也是一样的。 if语句 和C语言并无区别 循环语句 c、c++中的...

  • iOS学习第三天2015.12.30

    今天,学习了软件开发语言的基础C语言的循环语句. 在C语言中,循环语句有三大类: while语句,do..whil...

  • c语言控制语句

    C语言9种控制语句 ①if( )~else 条件语句 ②for( )~ 循环语句 ③while( )~ 循环语句 ...

  • 雨点的成长2

    C语言循环语句 switch语句 格式: switch(标识符){ case a:...;break; c...

  • iOS开发 -- C语言基础4(基本语句和运算符)

    iOS开发 -- C语言基础4(基本语句和运算符) 基本语句 C语言的基本语句跟Java中的差不多,所以,这里只是...

  • 2017.12.01

    今天是C语言第七天。上午讲了昨天的作业和新的知识点,switch语句和while,do while语句,下午练习...

网友评论

      本文标题:C语言练习:if语句

      本文链接:https://www.haomeiwen.com/subject/rdheictx.html