选择程序设计
约 771 字大约 3 分钟
2024-07-07
24.判断两个实型数据是否相等
#include <stdio.h>
#include <math.h>
int main(void)
{
float a = -2.12,b = -10.33;
if(fabs(a-b) <= 1e-4) //double fabs(double), int abs(int)
printf("这两个数相等");
else
printf("这两个数不等");
return 0;
}
##
25.求一个一元二次方程的根
#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c,d;
printf("请输入一元二次方程的3个系数");
scanf("%lf%lf%lf",&a,&b,&c,&d);
if(fabs(a=0) <=1e-6)
{
printf("输入有误,程序结束");
return 0;
}
d = b*b-4*a*c;
if(d<0)
printf("此方程无实数根");
else if(fabs(d) <=1e-6)
printf("此方程有两个相同的实数根:%lf\n",-b/(2*a));
else
printf("此方程的两个实数根为:%lf,&lf\n",(-b+sqrt(d))/2*a,(-b-sqrt(d))/2*a);
return 0;
}
26.逻辑型数据
#include <stdbool.h> //该文件中有_Bool这个数据类型,_Bool与bool是同义词,vc++没有这个文件
#include <stdio.h>
int main(void)
{
//定义布尔型变量——c99新增变量
bool a = false; //等价于bool a = 0;
bool b = true; //等价于bool b = 1;
// _bool c; //与bool c;等价
b = 3;
printf("%d\n",b);
printf("%\n",sizeof(a)); //布尔型数据占1个字节
return 0;
}
27.switch语句
#include <stdio.h>
int main(void)
{
printf("请输入所要到达的楼层:");
int a;
scanf("%d",&a);
switch(a)
{
default:printf("没有这个楼层\n");break;
case 1:
printf("上一楼\n");
break;
case 2:
printf("上二楼\n");
break;
case 3:
printf("上三楼\n");
break;
}
return 0;
}
28.条件编译
#include <stdio.h>
#define DAXIE 1
void f1(void);
void f2(void);
void f3(void);
int main(void)
{
// f2();
f3();
return 0;
}
void f1(void)
{
char ch;
while(ch = getchar()!= '\n')
{
#if 1 //1为真,0为假
if(ch >='A' && ch <= 'z')
ch+=32;
#else
if(ch >='a' && ch <='z')
ch-=32;
#endif
putchar(ch);
}
}
void f2(void)
{
char ch;
while(ch = getchar()!= '\n')
{
#ifdef DAXIE //使用宏变量,不加标识符执行else,加了标识符执行本行
if(ch >='A' && ch <= 'z')
ch+=32;
#else
if(ch >='a' && ch <='z')
ch-=32;
#endif
putchar(ch);
}
}
void f3(void)
{
char ch;
while(ch = getchar()!= '\n')
{
#ifndef DAXIE //不加标识符执行本行,加了标识符执行else
if(ch >='A' && ch <= 'z')
ch+=32;
#else
if(ch >='a' && ch <='z')
ch-=32;
#endif
putchar(ch);
}
##
29.头文件
#include <文件名> 系统到存放C库函数头文件的目录中寻找要包含的文件,这称为标准方式。 #include "文件名"系统现在用户当前目录中寻找要包含的文件,要是找不到,再按标准方式查找。
头文件的后缀可以是'.c'、'.h'或者没有
#include <stdio.h> //调用printf函数
#define P1 =3.14159
int E = 123;
int max(int x,int y)
{
x>y?printf("%d",x):printf("%d",x=y);
}
30例题1
#include <stdio.h>
int main(void)
{
int a,b,c,d,e;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=b;
b=a;
a=d;
}
#if 0
printf("%d,%d,%d",a,b,c);
#else
printf("%d,%d,%d",c,b,a);
#endif
return 0;
}
31例题2
#include <stdio.h>
int main(void)
{
printf("请输入数字1/2/3: ");
int a;
scanf("%d",&a);
switch(a)
{
case 1:printf("abc\n");break;
case 2:printf("ab\n");break;
case 3:printf("c\n");break;
default:printf("数字无效\n");
}
return 0;
}