例4.1在例3.5的基础上对程序进行改造。题目要求解得ax^ 2+bx+c=0方程的根。由键盘输入a,b,c,假设a,b,c的值任意,并不保证b ^ 2-4ac≥0。要求在程序中进行判别,如果b^ 2-4ac≥0,就计算并输出方程的两个实根,如果b^2-4ac<0,就输出“方程无实根”的信息。
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c, disc, x1, x2, p, q;
scanf("%lf%lf%lf", &a, &b, &c);
disc = b * b - 4 * a * c;
if(disc < 0)
printf("This equation hasn't real roots\n");
else
{
p = -b / (2.0 * a);
q = sqrt(disc) / (2.0 * a);
x1 = p + q;
x2 = p - q;
printf("real roots:\nx1 = %7.2f\nx2 = %7.2f\n",x1, x2);
}
return 0;
}
例4.2输入两个实数,按代数值由小到大的顺序输出这两个数。
#include<stdio.h>
int main()
{
float a, b, t;
scanf("%f, %f", &a, &b);
if(a > b)
{
t = a;
a = b;
b = t;
}
printf("%5.2f, %5.2f\n", a, b);
return 0;
}
改
#include<stdio.h>
int main()
{
float a, b, t;
scanf("%f%f", &a, &b);
if(a > b)
{
t = a;
a = b;
b = t;
}
printf("%5.2f, %5.2f\n", a, b);
return 0;
}
例4.3输入3个数,a,b,c,要求按由小到大的顺序输出。
#include<stdio.h>
int main()
{
float a, b, c, t;
scanf("%f, %f, %f", &a, &b, &c);
if(a > b)
{
t = a;
a = b;
b = t;
}
if(a > c)
{
t = a;
a = c;
c = t;
}
if(b > c)
{
t = b;
b = c;
c = t;
}
printf("%5.2f, %5.2f, %5.2f\n", a, b, c);
return 0;
}
改
#include<stdio.h>
int main()
{
float a, b, c, t;
scanf("%f%f%f", &a, &b, &c);
if(a > b)
{
t = a;
a = b;
b = t;
}
if(a > c)
{
t = a;
a = c;
c = t;
}
if(b > c)
{
t = b;
b = c;
c = t;
}
printf("%5.2f, %5.2f, %5.2f\n", a, b, c);
return 0;
}
例4.4输入一个字符,判别它是否为大写字母,如果是,将它转换为小写字母;如果不是,不转换,然后输出最后得到的字符。
#include<stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
ch = (ch >= 'A' && ch < 'Z') ? (ch + 32) : ch;
printf("%c\n", ch);
return 0;
}
例4.5有一函数y=-1(x<0);y=0(x=0);y=1(x>0),编一程序,输入一个x值,要求输出相应的y值。
#include<stdio.h>
int main()
{
int x, y;
scanf("%d", &x);
if(x < 0)
{
y = -1;
}
else
{
if(x == 0)
{
y == 0;
}
else
{
y ==1;
}
}
printf("x = %d,y = %d\n", x, y);
return 0;
}
例4.6要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为7084分,C等为6069分,D等为60分以下。成绩的等级由键盘输入。
#include<stdio.h>
int main()
{
char grade;
scanf("%c", &grade);
printf("Your score: ");
switch(grade)
{
case'A': printf("85~100\n");break;
case'B': printf("70~84\n");break;
case'C': printf("60~69\n");break;
case'D': printf("<60\n");break;
default: printf("enter data error!\n");
}
return 0;
}
微信“图像处理与模式识别研究所”关注我呦