白小洛


私信TA

用户名:Luo11

访问量:34830

签 名:

转战leetcode,不跟你们卷了。

等  级
排  名 303
经  验 5586
参赛次数 2
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

二维数组的转置
浏览:130

一、if嵌套语句

      注意大于号和小于号。

      if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

1-120129203325F3.jpg

      第二种形式为: if-else
if(表达式) 
    语句1;
else 
    语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。

1-1201292039355E.jpg

#include<stdio.h>
int main()
{
    int a, b, c, max;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
    {
        if (a > c)
            max = a;
        else
            max = c;
    }
    else
    {
        if (b > c)
            max = b;
        else
            max = c;
    }
    printf("%d\n", max);
    return 0;
}

二、三目运算符

     运用三目运算符(x?y:z;)简便运算。

     对于条件表达式x ? y : z;先计算条件x,然后进行判断。如果b的值为true,计算y的值,运算结果为y的值;否则,计算z的值,运算结果为z的值。一个条件表达式绝不会既计算y,又计算z。

     ? : ; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

     可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。

即为

if(x) 
{
    return y;
} 
else 
{
    return z; 
}

     注意:在C语言中,结果1 和 结果2的类型必须一致。

#include<stdio.h>

int main()
{
    int a, b, c, max;
    scanf("%d%d%d", &a, &b, &c);
    max = a > b ? a : b;
    max = max > c ? max : c;
    printf("%d\n", max);
    return 0;
}

三、妙用中间变量

      定义一个中间变量 m,假设它是最大值,并和a,b,c比较。、

#include<stdio.h>

int main()
{
    int a, b, c, m;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
        m = a;
    else
        m = b;
    if (c > m)
        m = c;
    printf("%d", m);
    return 0;
}

四、巧用赋值

       假定其中一个值为最大值,将实际最大值赋值于它,最后输出

#include<stdio.h>

int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if (a < b)
        a = b;
    if (a < c)
        a = c;
    printf("%d", a);
    return 0;
}

五、运用子函数

      调用函数寻找最大值,让主函数简洁。

#include<stdio.h>

int max(int x, int y)
{
    return x > y ? x : y;
}

int main()
{
    int a, b, c, m;
    scanf("%d%d%d", &a, &b, &c);
    printf("%d", max(max(a, b), c));
    return 0;
}

(补充)任意个数求最大值(假设10个数)

      运用for循环,遍历对比数组,假定中间量为最大值。

#include<stdio.h>

int main()
{
    int i = 0;
    int arr[10] = {0};
    int max = 0;  //定义变量max用来作比较
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);    //输入整数
    }
    for (i = 0; i < 10; i++)
    {
        if (max < arr[i])
            max = arr[i];
    }
    printf("最大值为%d\n", max);
    return 0;
}


 

0.0分

405 人评分

  评论区

#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    if (a>b&&a>c)
    printf("%d",a);
    else if(b>a&&b>c)
    printf("%d",b);
    else
    printf("%d",c);
    return 0;
}

为什么一直显示我答案错了啊,能不能来个人帮帮我
2024-11-14 17:26:55
#include<stdio.h>
 
int main()
{
    int i = 0;
    int arr[10] = {0};
    int max;  //定义变量max用来作比较
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
		max=arr[0];       //输入整数
    }
    for (i = 0; i < 10; i++)
    {
        if (max < arr[i])
            max = arr[i];
    }
    printf("最大值为%d\n", max);
    return 0;
}
最后一个十个数取最大值,如果输入结果全是负数,那么输出为0,应该把max赋值为数组中的第一个数,这样无论正数还是负数都不影响。
2024-10-09 14:04:39
#include <stdio.h> 
int main()
{
	int a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	
	int max=0;
	if(a>b){
		if(a>c){
			max=a;
		}else{
			max=c;
		}
	}else{
		if(b>c){
			max=b;
		}else{
			max=c;
		}
	}
	
	printf("The max is%d\n",max);
	
	return 0;
}
请问大佬们这个程序哪里错了?为什么不合格,我要哭了
2024-09-17 14:08:44
#include<stdio.h>
main()
{
	int a,b,c,max;
	printf("请输入第一个数字\n");
		scanf("%d",&a);
	printf("请输入第二个数字\n");
		scanf("%d",&b);
	printf("请输入第三个数字\n");
		scanf("%d",&c);
		max=a;
	if(b>max)
	{
	   max=b;
	}
		if(c>max)
		{
			max=c;
		}
		printf("三个数中的最大值为:\n",max);
		return 0;


}
这个代码有什么问题吗
2024-03-25 22:51:27
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
    if(a>c)
    printf("%d",a);
}
else if(b>a)
{
    if(b>c)
    printf("%d",b);
}
else(c>a);
{
    if(c>b)
    printf("%d",c);
    rerurn 0;
}
各位评价一下,刚学……
2024-03-04 21:56:12
#include<stdio.h>
int main()
{
    int a, b, c, max;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
		max = a;
    else
        max = b;
    if (max> c)
		max = max;
    else
		max = c;
    printf("%d\n", max);
    return 0;
}
为什么我输入的是10,20,30输出的却是10?
2023-11-12 22:42:44
#include<stdio.h>
int main()
{
    int a,b,c,max;
    if(b>a&&b>c)
    max=b;
    else if(c>a)
    max=c;
     
   
    return 0;
}为什么没问题一直显示错误啊
2023-11-12 10:56:49
#include<stdio.h>
int main(){
	int a,b,c,m;
	scanf("%d%d%d",&a,&b,&c);
	if(a>b)
	m=a;
	else m=b;
	if(c>m)
	c=m; 
printf("max=%d\n",m);
	return 0;
} 
为啥我这个代码,输入10 20 30,输出为30
输入30 20 10 ,输出为30
2023-10-19 20:54:00