分支结构if
2.9:设有一元二次方程ax^2+bx+c=0,输入a、b、c的值,判断该一元二次方程是有2个实根,还是1个实根,还是没有实根。若有两个实根则输出两个实根的解,若有1个实根则输出一个实数的解,若没有实根则不输出。
#include<stdio.h>
#include<math.h>
int main(){
int a,b,c,x1,x2,d,e;
printf("请输入a=\n");
scanf("%d",&a);
printf("请输入b=\n");
scanf("%d",&b);
printf("请输入c=\n");
scanf("%d",&c);
e=b*b-4*a*c;
d=sqrt(e);
if(e>0)
{
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
printf("一元二次方程%dx^2+%dx+%d=0存在两个实数根:x1=%d,x2=%d",a,b,c,x1,x2);
}
else
if(e==0)
{
x1=(-b+d)/(2*a);
x1=x2;
printf("一元二次方程%dx^2+%dx+%d=0存在一个实数根:%d",a,b,c,x1);
}
else
if(e<0)
printf("一元二次方程%dx^2+%dx+%d=0不存在实根",a,b,c);
return 0;
}
2.10设计骰子猜大小游戏,随机三个骰子点数randNum1~6,玩家选择输入0【小】、1【大】、2【豹子】,1~9判定为小,10~18判定为大,三个点数相同判定为豹子,豹子通杀大小。并根据结果输出提示。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){
int num,num1,num2,num3,tem;
printf("玩家选择输入0【小】/1【大】/2【豹子】,0/1/2:\n");
scanf("%d",&tem);
srand((unsigned)time(NULL));
rand();
num1=rand()%6+1;
num2=rand()%6+1;
num3=rand()%6+1;
num=num1+num2+num3;
if(num1!=num2!=num3)
{
if(num<1 && tem==0 || num>9 && tem==1)
printf("骰子的点数是:%d-%d-%d,%d点,\n猜对啦!",num1,num2,num3,num);
else
printf("骰子的点数是:%d-%d-%d,%d点,\n很可惜猜错啦,下次好运!",num1,num2,num3,num);
}
if(num1==num2==num3)
{
if(tem==2)
printf("骰子的点数是:%d-%d-%d,\n豹子!",num1,num2,num3);
else
printf("骰子的点数是:%d-%d-%d,%d点,\n很可惜猜错啦,下次好运!",num1,num2,num3,num);
}
return 0;
}