我们在学习或者刷题的过程中往往会遇到一个次“多组输入”,我们很容易理解输入的意思,scanf根据自己需要的类型完善scanf就可以。但是多组输入是什么意思呢?
我们有些朋友学习过单片机那就了解了一个东西叫主循环;简单列一下代码:
void main()
{
while (1)
{
//主循环;
}
}
在主函数下初始化,一些数据显示等等然后执行主循环不断操作,不断读取;
而c语言当中所谓的多组输入,没有一直循环一直输入,需要根据多少输入确定多少输出,所以要根据输入确定输出。那么介绍一下是scanf()函数其是有返回值,它返回的就是我们输入的个数,比如我输入了,三个数对应的返回值就是3。那么根据以上的讲解我们来看某牛网的问题?
我们可以清楚的看见,要求输入多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。三角形判断我们可以了解,首先要能构成三角形必须,任意两边之和大于第三边,否则无法构成三角形。在这个大前提下,我们继续判断是等边还是等腰还是普通三角形。按照这个思路往下不难解:
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
int c = 0;
while (scanf("%d %d %d", &a, &b, &c) == 3)
{
if (a < c + b && b < a + c && c < b + a)
{
if (a == b && a == c && c == b)
{
printf("Equilateral triangle!\n");
}
else if (a == b || a == c || b == c)
{
printf("Isosceles triangle!\n");
}
else
{
printf("Ordinary triangle!\n");
}
}
else {
printf("Not a triangle!\n");
}
}
return 0;
}
对于之间的逻辑运算符有不理解的可以参考之前文章:http://【C语言逻辑操作符:&& , || , !详解 - 优快云 App】http://t.csdnimg.cn/LmDXF