进度日志9

学习笔记1:条件运算符和条件表达式

编程1:

#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
    int a, b, max;
    printf("input two numbers\n");
    scanf("%d%d", &a, &b);
    printf("
max=%d", a > b ? a : b);
}

运行结果:

条件运算符为     它们是一对,不能拆开使用

使用形式为:表达式1表达式2表达式3

如果表达式1的值为真,则以表达式2的值作为条件表达式的值

                                  否则以表达式3的值作为条件表达式的值

条件表达式通常运用在赋值语句中

如条件语句:

if(a>b)max=a;

else max=b;

可用条件表达式写为:

max=(a>b)?a:b;

如果a>b为真,则把a赋予max,否则把b赋予max

条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符,因此可以去掉括号写为:

max=a>b?a:b;

条件运算符的结合方向是自右向左,例如a>b?a:c>d?c:d

应理解为a>b?a:(c>d?c:d)  这是一种嵌套情形

题目:

输入一个字符,判断它是否是大写字母,如果是,将它转换为小写字母,若不是,不转换。然后输出最后得到的字符。

老师给的答案:

#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
    char ch;
    scanf("%c", &ch);
//%c表示字符型
    ch = (ch >= 'A'&& ch <= 'Z') ? (ch + 32) : ch;
    printf("%c\n", ch);
}

运行结果:

网上找的答案:

#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c", &ch);
    if (ch >= 'A' && ch <= 'Z')
        ch = ch + 32;
    printf("转换成小写字母是:%c\n", ch);

}

学习笔记2:switch语句

   形式:

          switch(表达式)

          {

          case常量表达式1:语句1;

          case常量表达式2:语句2;

          ......

          case常量表达式n:语句n;

          default:语句n+1;

          }

编程:

#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
    int a;
    printf("input integer number: \n");
//integer是整型的意思
    scanf("%d", &a);
    switch (a)
//注意此处不能放;
    {
    case 1:printf("Monday\n");
    case 2:printf("Tuseday\n");
    case 3:printf("Wednesday\n");
    case 4:printf("Thursday\n");
    case 5:printf("Friday\n");
    case 6:printf("Saturday\n");
    case 7:printf("Sunday\n");
    default:printf("error\n");
    }
}

运行结果:

输入5以后,下面所有结果全都出来了,这显然不是我想要的结果

为了避免这一情况,需要使用break语句来跳出switch语句

如下:

#pragma warning(disable:4996)
#include <stdio.h>
void main()
{
    int a;
    printf("input integer number: \n"); 
    scanf("%d", &a);
    switch (a) 
    {
    case 1:printf("Monday\n");
break;
    case 2:printf("Tuseday\n"); break;
    case 3:printf("Wednesday\n"); break;
    case 4:printf("Thursday\n"); break;
    case 5:printf("Friday\n"); break;
    case 6:printf("Saturday\n"); break;
    case 7:printf("Sunday\n"); break;
    default:printf("error\n"); 
    }
}

运行结果:

猜你喜欢

转载自blog.csdn.net/weixin_43791925/article/details/89280121