C学习代码02

#include <stdio.h>


//条件语句,输出两个数的最大值,加入数据格式检验
//if如果不用{},默认只执行一条语句
void main(){

int a,b,max,ret;
printf("Input a,b:");
ret = scanf("%d %d",&a,&b);
if(a > b)
max = a;
else
max = b;
if(ret != 2){
printf("false");
}else{
printf("max=%d\n",max);
}
}


//三个数最大值
void main(){
int a,b,c,temp,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
temp = a;
}else{
temp = b;
}
if(temp > c){ 
max = temp;
}else{
max = c;
}
printf("max=%d\n",max);
}


//三目运算符,加入检验数据项的个数/类型合法性
void main(){
//ret接收返回值,scanf()返回的是输入的数据项个数,以此来验证字符输入是否正确
int a,b,max,ret;
printf("Input a,b:");
ret = scanf("%d %d",&a,&b);
if(ret != 2){
printf("Input data quantity or format error\n");
fflush(stdin); //清除缓冲区中的数据
}else{
max = a > b ? a : b;
printf("max=%d\n",max);
}
}


//一元二次方程求解
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


#define EPS 1e-1  //定义无限接近0的值,用于与0做比较
void main(){


float a,b,c,disc,p,q;
printf("Enter The Coefficients a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
if (fabs(a) <= EPS)  //a的绝对值小于或等于EPS即a=0,不是一元二次方程
{
printf("Not a Quadratic Equation\n");
exit(0); //退出程序,返回操作系统
}
disc = b*b-4*a*c; //bb-4ac判断是否有解
p = -b(2*a);
q = sqrt(fabs(disc / (2 * a))); //sqrt()开方
printf("%2f,%2f",p,q);

//以上代码有问题 输出p/q为何是错误数据,数据溢出?
}


//判断三角形类型
//也可以判断出三边的大小关系,然后再进行判断三角形类型,这样效率更高
//以下代码不完整,只用于熟悉语法,不深究
#define EPS 1e-1;  //十的-1次方
void main(){

float a,b,c;
int flag = 1; //标志变量flag
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c || b+c>a || a+c>b){ //逻辑运算符,优先级顺序:! && ||,后两者从左向右结合
//是三角形,输出“三角形”字眼(因为代码是顺序执行的,输出必须在判断之后),并继续进行详细的判断,
//如果不是的话,执行else的内容
//此处注意:浮点型两个数据不能==直接判断相等,同判断浮点与0一样,引入极小常量EPS
if(fabs((a-b)<=EPS || (b-c)<=EPS || (c-a)<=EPS )){
printf("等腰");
flag = 0;
}
if(fabs(a*a+b*b-c*c <= EPS) || fabs(a*a+c*c-b*b) <= EPS || fabs(c*c+b*b-a*a) <= EPS){
printf("直角");
flag = 0;
}
if(flag){
printf("一般");

printf("三角形\n");
}else{
printf("不是三角形");
}
}



猜你喜欢

转载自blog.csdn.net/ivorybeach/article/details/79631095