Skip to content

选择程序设计

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;
}