(c语法百题16)一元二次方程的实数根

知识点:

数学函数头文件 #include <math.h>

开平方函数,sqrt()

注意等号 == 与赋值号= 的区别

内容: 求一元二次方程(二次项系统不为0)ax2+bx+c=0(a≠0)的实数根

输入说明:

一行三个系数(用空格隔开)

输出说明:

先输出(-b+sqrt())/2/a的根,一行一个,如果是相等实根,则输出一个(均保留两位小数)

。若无实根输出No answer!

输入样例:

1 1 2

输出样例 :

No answer!

 1 #include <stdio.h>
 2 #include <math.h>
 3 int main()
 4 {
 5  float a,b,c,d,x1,x2;
 6  scanf("%f %f %f",&a,&b,&c);
 7  d=b*b-4*a*c;
 8  if (d>=0)
 9  {
10   x1=(-b+sqrt(d))/(2*a);
11   x2=(-b-sqrt(d))/(2*a);
12   if(x1==x2)
13   {
14    printf("%.2f\n",x1);
15   }
16   else
17   {
18    printf("%.2f\n%.2f\n",x1,x2);
19   }
20  }
21  else
22  {
23   printf("No answer!\n");
24  }
25  return 0;
26 }

(c语法百题16)一元二次方程的实数根

时间: 2024-12-14 07:08:53

(c语法百题16)一元二次方程的实数根的相关文章

(c语法百题12)优惠购物

知识点: if……else 的用法 内容: 节日期间,某超市举行优惠购物活动,规定:所购物品不超过1000元(含)时,按9.5折付款,如超过1000元,则超过部分按9折收费 输入说明: 一行 ,一个数,购物总额 输出说明: 一行 需付购物款(保留两位小数) 输入样例: 1200.58 输出样例 : 1130.52 1 #include <stdio.h> 2 int main() 3 { 4 float a,s; 5 scanf("%f",&a); 6 if (a&

(c语法百题13)符号函数

知识点: if……else……if……else的用法. 内容: 计算下列函数(符号函数): 1 (x>0) y= 0 (x=0) -1 (x<0) 输入说明: 一个整数 输出说明: 一个数字(1,0,或者-1) 输入样例: 12 输出样例: 1 1 #include <stdio.h> 2 int main() 3 { 4 int a; 5 scanf("%d",&a); 6 if (a>0) 7 { 8 printf("1\n"

(c语法百题15)算术运算

知识点: 法1: 字符与ASCLL码的转换熟练! if……else的用法 法2: switch的用法 注意 scanf("%f %f %c",&a,&b,&c);与scanf("%f%f%c",&a,&b,&c);的区别,中间有无空格. 内容: 输入两个数值(均不为零)及一个算术运算符,输出其运算的结果(保留两位小数). 输入说明: 一行,2个数字,一字符(+,-,*,/,分别代表加.减.乘.除 输出说明: 一行,一个

(c语法百题14)判断直角三角形

知识点: 逻辑表达式的用法 &&       ||       !     注意优先级. 内容: 输入三角形的三边,判断它是否是直角三角形,是输出Yes,不是输出No,连三角形都不是,输出Error 输入说明: 一行,输入3个整数 输出说明: Yes! 或者 No!或者 Error! (注意大小写,标点前无空格) 输入样例: 3 4 5 输出样例 : Yes! 1 #include <stdio.h> 2 int main() 3 { 4 int a,b,c; 5 scanf(

(c语法百题9)求梯形的面积

法1: 全部用定义float型 法2: 用int整型,答案用float型,注意此时 printf ("%.2f\n",d);中的d,确保是有小数的.比如0.00,才能运行.不过此法一些语言工具编译不过,一些oj也刷不过去.不过vc是合法的. 内容: 已知上底.下底和高,求梯形的面积 输入说明: 一行三个数 输出说明: 一行一个数(保留2位小数) 输入样例: 3 5 4 输出样例 : 16.00 法1: #include <stdio.h> int main() { floa

(c语法百题22)统计字符

知识点: 数组的运用,结合循环 getchar()的用法 注意:对于数组a[1000],没有a=getchar()然后就把字符一个一个装进数组里面,这是错误的. 还有scanf("%s”,a);也不是正确的. 内容: 输入若干个字符(以‘#'作为结束),计算输入的字符中字母‘a'或‘A’出现的次数. 输入说明: 一行若干个字符. 输出说明: 一个整数,为a或者A字符出现次数和. 输入样例: abcdefABCDEFaaAA# 输出样例 : 6 1 #include <stdio.h>

(c语法百题18)三数排序

知识点: 借用第四变量对三个变量进行排序. 排序的算法,if语句 内容: 任意输入三个数 a.b.c,按由大到小的顺序打印出来 输入说明: 一行 三个整数 输出说明: 一行三个整数,由大到小 1 #include <stdio.h> 2 int main() 3 { 4 int a,b,c,t; 5 scanf("%d %d %d",&a,&b,&c); 6 if(a<b) 7 { 8 t=b; 9 b=a; 10 a=t; 11 } 12 i

(c语法百题24)最小公倍数

知识点: 算法 while循环的用法. 内容: 求两个自然数的最小公倍数 输入说明: 输出说明: 输入样例: 2 4 输出样例 : 4 1 #include <stdio.h> 2 int main() 3 { 4 int a,b,t,A,B; 5 scanf("%d %d",&a,&b); 6 A=a; 7 B=b; 8 do 9 { 10 t=a%b; 11 a=b; 12 b=t; 13 } 14 while (t!=0); 15 printf(&qu

(c语法百题25)从 n 个数中挑选出最大的数

知识点: 数组灵活运用 for循环灵活运用 简单的算法 内容: 从 n 个数中挑选出最大的数 输入说明: 两行 第一行一个数n,表示总的个数 第二行共n个数字,用空格隔开. 输出说明: 一行,最大数 输入样例: 4 1 2 3 4 输出样例 : 4 #include <stdio.h>#define MAX 200; int main() { int a[MAX],n,i,t; scanf("%d",&n); for (i=0;i<n;i++) { scanf