练习完循环结构,继续练习选择结构,熟练使用if语句,switch语句。(以下代码均用Visual Studio 2022 编写)
1、从键盘输入三角形的3条边a、b、c,判断它们是否能构成三角形,如果能,则计算出面积,如果不能,则提示“不能构成三角形”信息。
分析:已知三条边,要保证任意两条边之和大于第三边。利用海伦公式计算三角形面积
p = 0.5 * (a + b + c);可求出面积s = sqrt(p(p-a)(p-b)*(p-c));
#include<stdio.h>
#include<math.h>
int main()
{
float a, b, c;
float p,s;
printf("请输入三角形三条边:");
scanf_s("%f%f%f",&a,&b,&c);
p = 0.5 * (a + b + c);
if (a + b > c && a + c > b && b + c > a)
{
printf("能构成三角形!");
s = sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形的面积是:%f",s);
}
else
{
printf("不能构成三角形!");
}
return 0;
}
2、请输入星期几的第一个字母来判断是星期几,如果第一个字母一样,则继续判断第二个字母。(用switch语句实现)
分析:一定要清理缓冲区,可以使用getchar()来吃掉换行符,或者用清除缓冲区函数,fflush(stdin);
#include<stdio.h>
int main()
{
char c, ch;
printf("请输入第一个字母:");
scanf_s("%c", &c);
getchar();//注意:scanf("%c",&c);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符
switch (c)
{
case 'm':
case 'M':printf("Monday\n"); break;
case 'w':
case 'W':printf("Wednesday\n"); break;
case 'f':
case 'F':printf("Friday\n"); break;
case 't':
case 'T':printf("请输入第二个字母:");
scanf_s("%c", &ch);
if (ch == 'u')
{
printf("Tuesday\n");
}
else if (ch == 'h')
{
printf("Thursday\n");
}
else
{
printf("error!\n");
}
break;
case 's':
case 'S':printf("请输入第二个字母:");
scanf_s("%c", &ch);
if (ch == 'a')
{
printf("Saturday\n");
}
else if (ch == 'u')
{
printf("Sundaty\n");
}
else
{
printf("error!\n");
}
break;
default:printf("error!\n"); break;
}
return 0;
}
3、从键盘输入三个整数a,b,c,编程输出其中最大的数。
#include<stdio.h>
int main()
{
int a, b, c,max;
printf("请输入三个数:");
scanf_s("%d%d%d",&a,&b,&c);
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
printf("最大数为:%d\n", max);
return 0;
}
emm就先练个三题吧,后续补充!欢迎指正!