前言
大学的第一个c语言作业。
一、比较三个数大小
题目描述:
输入三个整数,然后输出最大的数。
二、解题方法
1.两个两个比较
代码如下
#include<stdio.h> int Max(int a, int b, int c); //函数声明 int main() { int a = 0, b = 0, c = 0,ans=0; //初始化 scanf_s("%d %d %d", &a, &b, &c); //输入三个数 ans = Max(a, b, c); //因为函数是int 类型的函数,会返回一个整数 printf("%d", ans); //打印 return 0; } int Max(int a, int b, int c) { int max = a; if (max < b) max = b; if (max < c) max = c; return max; }
重点解剖一下函数部分
int Max(int a, int b, int c) { int max = a; // “="是赋值符号,max=a,的意思是,把a的值赋值给max。max的初值就是a if (max < b) //比较max和b,也就是比较a和b的大小 max = b; //如果b比max大,那么就把b的值的赋给max,就是max=b了,不然max还是 等于a,这里就完成了a和b的比较,下面同理。 if (max < c) max = c; return max; //返回一个最大值(整数) }
2.三个一起比较
代码如下:
#include<stdio.h> int Max(int a, int b, int c); int main() { int a = 0, b = 0, c = 0,ans=0; scanf_s("%d %d %d", &a, &b, &c); ans = Max(a, b, c); printf("%d", ans); return 0; } int Max(int a, int b, int c) { int max = c; if (a > b && b > a) max = a; if (b > a && b > c) max = b; return max; }
主要是函数部分不一样
int Max(int a, int b, int c) { int max = c; if (a > b && b > a) max = a; if (b > a && b > c) max = b; return max; }
解释一下&&的意思,它的叫法是“且”,和我们数学上的符号 ∧ 是一样的,就是当两个都为真命题的时候,才能为真。
那为什么不直接a>b>c呢,因为为什么计算机判断的时候,是先判断a>b的,如果a>b成立,那么他们就等于1,否则为0,因为在计算机里面,真就是1,假就0是。判断完这个后,再判断1(0)>c是否成立,这样就没有了三位数比较的意义了。
总结
作业打卡的第一天,有写得不好的地方请多指教~