1.
文字描述:
1.定义三个整型变量a,b,c;定义一个单精度变量area;定义一个双精度变量s;
2.输入三角形的三条边;
3.判断是个否构成三角形;
4.计算三角形面积;
5.输出三角形面积
代码:
#include<math.h>
int main()
{
int a, b, c;
float area;
double s;
printf("请输入三角形的三条边长:");
scanf_s("%d,%d,%d", &a, &b, &c);
s = (a + b + c) / 2.0;
if (a + b <= c || b + c <= a || a + c <= b)
{
printf("不够成三角形\n");
}
else
{
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积是:%f\n", area);
}
return 0;
}
流程图:
截图:
2.
代码:
1.定义一个整型变量x,定义一个小数y;
2.输入x的值;
3.判断x是否等于0,x不等于 0,y等于1.0/x;否则y=0;
4.输出;
#include<stdio.h>
int main()
{
int x; float y;
printf("输入x的值:");
scanf_s("%d", &x);
if (x != 0)
y = 1.0 / x;
else
y = 0;
printf("%d,%f", x, y);
return 0;
}
流程图:
截图:
3.
代码:
1.定义一个字符’m';定义三个整数变量i=10,j=20,k=30;定义两个单精度变量x=13e和y=10.85;
2.设置一个输出函数,输出相应关系运算符的出来的值;
3.结束;
#include<stdio.h>
int main()
{
char c = 'm';
int i = 10, j = 20, k = 30;
float x = 13e+5, y = 10.85;
printf("%d,%d,", 'a' + 5 < c, -i - 2 * j >= k + 1);
printf("%d,%d\n", 1 < j < 5, x - 5.25 <= x + y);
printf(" % d, % d\n", i + j + k == -2 * j, k == j == i + 5);
return 0;
}
流程图:
截图:
4.
文字描述:
1定义四个整型变量a=3,b=3,c=2,d;
2.设置一个输出函数,输出相应关系运算符的出来的值;
3.表达式出来的值赋值给d;
4.结束;
代码:
#include<stdio.h>
int main()
{
int a = 3, b = 3, c = 2, d;
printf("%d,", !a && !b && c);
printf("%d,", !a || !b || c);
printf("%d\n", a >= b && b > c);
d = c-- || (b = 6) && a++;
printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
return 0;
}
流程图:
截图:
5.
文字描述:
1.定义两个整型变量x,y;
2.设置一个输出函数,输出普通字符;
3.声明两个函数,将x,y的值存入 ;
4.设置一个输出函数,输出条件表达式得出来的值;
5.结束;
代码:
#include<stdio.h>
int main()
{
int x, y;
printf("请输入两个整数:");
scanf_s("%d,%d", &x, &y);
printf("两个整数中最大的数为:%d\n", x > y ? x : y);
return 0;
}
流程图:
截图:
6 .
文字描述:
1.定义两个整型变量a,b;
2.设置一个输出函数,输出普通字符
3.声明两个输入函数,将a,b的值输入;
4.判断a和b的值的大小,a大输出a的值;否则输出b的值;
5.结束;
代码:
#include<stdio.h>
int main()
{
int a, b;
printf("请输入两个整数:");
scanf_s("%d%d",&a,&b);
if (a > b)
printf(":两个整数中最大的数为%d\n", a);
else
printf("两个整数中最大的数为%d\n",b);
return 0;
}
流程图:
截图:
7.
文字描述:
1.定义两个双精度浮点型变量x,y;
2.设置一个输出函数,输出普通字符;
3.声明一个输入函数,将x的值输入;
4.判断x是否小于1;小于1,y=exp(x);否则,y=pow(x,2)-1;
5.声明一个函数,输出x,y的值;
6.结束;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
double x, y;
printf("输入x的值:");
scanf_s("%lf", &x);
if (x <= 1)
y = exp(x);
else
y = exp(x, 2) - 1;
printf("f(%f)=%.2f\n", x, y);
return 0;
}
流程图:
截图:
8.
文字描述:
1.定义一个单精度浮点型变量x;
2.声明一个输入函数,将x的值存入;
3.判断x是否小于0;小于0,x的负数取负;
4.声明一个输出函数,将x的值输出;
5.结束;
代码:
#include<stdio.h>
int main()
{
float x;
scanf_s("%f", &x);
if (x < 0)
x = -x;
printf("%f",x);
return 0;
}
流程图:
截图:
9.
文字描述:
1.定义两个整数变量x,y;
2.声明一个输出函数,输出普通字符;
3.声明一个输入函数,把x的值存入;
4.判断x的值是否为0;x=0,y=1;x!=0,y=-1;
5.声明一个输出函数,把y的值输出;
6.结束;
代码:
#include<stdio.h>
int main()
{
int x, y;
printf("x=");
scanf_s("%d",&x);
if (x)
y = 1;
else
y = -1;
printf("y=%d", y);
return 0;
}
流程图:
截图:
10.
文字描述:
1.定义四个单精度浮点型变量a,b,c,d;
2.判断a,b的大小,a大运行第一个赋值运算;
3.判断a,c的大小,a大运行第二个赋值预算;
4.判断b,c的大小,b大运行第三个赋值运算;
5.声明一个输出函数,把a,b,c存入;
6.结束;
代码:
#include<stdio.h>
int main()
{
float a, b, c, t;
scanf_s("%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;
}
流程图:
截图:
11.
文字描述:
1.定义四个整型变量a,b,c,max;
2.声明一个输入函数,把a,b,c,的值存入;
3.判断a,c的大小,a大,就赋值给max;否则c就赋值给max;
4.判断b,c的大小,b大,就赋值给max;否则c就赋值给max;
5.声明一个输出函数,把max的值输出;
6.结束;
代码:
#include<stdio.h>
int main()
{
int a, b, c,max;
scanf_s("%d%d%d", &a, &b, &c);
if (a > b)
if(a>c)
max = a;
else
max = c;
else
if (b > c)
max = b;
else
max = c;
printf("max=%d\n", max);
return 0;
}
流程图:
截图:
12.
文字描述:
1.定义两个整型变量为x,y;
2.声明一个输入函数,把x的值存入;
3.判断x是否大于0;x=0,y=0;x不等于0,y-1;
4.声明一个输出函数,把y的值输出;
5.结束;
代码:
#include<stdio.h>
int main()
{
int x, y;
scanf_s("%d", &x);
if (x > 0)
y = 1;
else
if (x == 0)
y = 0;
else
y = -1;
printf("y=%d\n",y);
return 0;
}
流程图:
截图:
13.
文字描述:
1.定义两个单精度浮点型变量x,y;
2.声明一个输出函数,输出普通字符;
3.声明一个输入函数,把x输入;
4.判断x是否小于等于2,把表达式赋值给y;
5.判断x是否会小于等于10,把表达式赋值给y;
6.声明一个输出函数,输出y的值;
7.结束;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
float x, y;
printf("输入y的值:");
scanf_s("%f", &x);
if (x < 2)
y = 2 * x;
else
y = 1 - cos(x);
printf("y = % 0.6f\n", y);
return 0;
}
流程图:
14.
文字描述:
1.定义两个字符型变量c1,c2;
2.声明一个输出函数,输出普通字符;
3.声明单个字符输入函数,判断输入的字符是否小写,小写转大写;
4.判断输入的字符是否大写,大写转小写;
5.转换为ASCII码表的下一个字符,输出字符变量c2的值;
6.结束;
代码:
#include<stdio.h>
int main()
{
char c1, c2;
printf("请输入一个字符:");
c1 = getchar();
if (c1 >= 'a' && c1 <= 'z')
c2 = c1 - 32;
else if (c1 >= 'A' && c1 <= 'Z')
c2 = c1 + 32;
else
c2 = c1 + 1;
putchar(c2);
return 0;
}
流程图:
截图:
15.
文字描述:
1.定义一个整数变量month;
2.声明一个输出函数,输出普通字符;声明一个输入函数,输入month的值;
3.判断的数字为第几季度;
4.输出第一季度,结束循环;输出第二季度,结束循环;
输出第三季度,结束循环;输出第四季度,结束循环;
5.其它数字违背此语句,输入输出错误;
6.结束;
代码:
#include<stdio.h>
int main()
{
int month;
printf("输入月份:");
scanf_s("%d", &month);
switch ((month - 1) / 3)
{
case 0:
printf("%d月是第1季度\n", month);
break;
case 1:
printf("%d月是第2季度\n", month);
break;
case 2:
printf("%d月是第3季度\n", month);
break;
case 3:
printf("%d月是第4季度\n", month);
break;
default:
printf("输入错误;");
break;
}
return 0;
}
流程图:
截图:
16.
文字描述:
1.定义三个整型变量year,month,days;
2.声明一个输出函数,输出普通字符;声明一个输入函数,输入year,month的值;
3.判断month的值;1,3,5,7,8,10,12月份为31天,结束循环;
4,6,9,11月份为30天,结束循环;
4.判断是否为闰年;是闰年,2月份为29天;不是闰年,2月份为28天;
5.声明一个输出函数,输出year,month,days的值;
6.结束;
代码:
#include<stdio.h>
int main()
{
int year, month, days;
printf("请输入年,月:");
scanf_s("%d,%d",&year, &month);
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
days = 29;
else
days = 28;
break;
}
printf("%d年%d月的天数是%d天\n",year,month,days);
return 0;
}
流程图:
截图:
17.
文字描述:
1.定义一个整型变量expreession来存放构造表达式的值;定义两个单精度浮点型变量x,y;
2.声明一个输出函数,输出普通字符;声明一个输入函数,存入x的值;
3.判断expreession的值;值为1时赋值给 y,跳出第一个语句;值为2时赋值给 y,跳出第二个语句;
值为3时赋值给 y,跳出第三个语句;
4.声明一个输出函数,输出y的值;
5.结束;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int expression; float x, y;
printf("输入x的值:");
scanf_s("%f", &x);
expression = (int)(1 * (x < 2) + 2 * (x >= 2 && x <= 10) + 3 * (x > 10));
switch (expression)
{
case 1:
y = 2 * x; break;
case 2:
y = 7 - 3 * x;
break;
case 3:
y = 1 - cos(x); break;
}
printf("y=%0.5f\n", y);
return 0;
}
流程图:
截图:
4.5 分支结构程序设计实例
18.
文字描述:
1.定义两个单精度浮点型变量x,y;
2.声明一个输入函数,存入x的值;
3.判断x是否大于等于0;x大于等于0,输出y=sqrt(x);x小于等于0,输出y=pow(x,5)+2*x+1/x;
4.声明一个输出函数,输出x的值;
5.结束;
代码:
#include<stdio.h>
#include<math.h>
int main()
{
float x, y;
scanf_s("%f", &x);
if (x >= 0)
y = sqrt(x);
else
y = pow(x, 5) + 2 * x + 1 / x;
printf("x=%.2f,y=%.2f\n", x, y);
return 0;
}
流程图:
截图:
19.标准格式实现:
文字描述:
1.定义两个整数变量year,leap;
2.输出普通字符;声明一个输入函数,存入year的值;
3.判断输入的年份是否能被4或400取余为0,不能被100取余为0;
4.能,leap=1;不能,leap=0;
5.判断leap为1或为0;
6.leap为1,输出是闰年,leap为0,输出不是闰年;
7.结束;
代码:
#include<stdio.h>
int main(void)
{
int year, leap;
printf("输入年份:");
scanf_s("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
leap = 1;
else
leap = 0;
if (leap)
printf("%d是闰年\n", year);
else
printf("%d不是闰年\n", year);
return 0;
}
流程图:
截图:
20.嵌套格式实现:
文字描述:
1.定义两个整数变量year,leap;
2.输出普通字符;声明一个输入函数,存入year的值;
3.判断输入的数是否能被4取余为0;判断是否被100取余为0判断是否被400取余为0;
能被400取余为0,leap=1;不能被4或100取余为0,leap=0;能被4或100取余为0,leap=1;
4.leap为1,输出是闰年,leap为0,输出不是闰年;
7.结束;
代码:
#include<stdio.h>
int main()
{
int year, leap;
printf("输入年份:");
scanf_s("%d", &year);
if (year % 4 == 0)
{
if (year % 400 == 0)
{
if (year % 400 == 0)
leap = 1;
}
else
leap = 1;
}
else
leap = 0;
if (leap)
if (leap)
printf("%d是闰年\n", year);
else
printf("%d不是闰年\n", year);
return 0;
}
流程图:
截图:
21.多分式格式实现
文字描述:
1.定义两个整数变量year,leap;
2.输出普通字符;声明一个输入函数,存入year的值;
3.判断输入的数是否能被4取余为非0,非0,leap0;判断是否被100取余为非0,非0,leap=1; 判断是否被400取余为非0,非0,leap=0;不是非0,leap=1;
4.判断leap为1或为0;
4.leap为1,输出是闰年,leap为0,输出不是闰年;
7.结束;
代码:
#include<stdio.h>
int main()
{
int year, leap;
printf("输入年份:");
scanf_s("%d", &year);
if (year % 4 != 0)
leap = 0;
else if (year % 100 != 0)
leap = 1;
else if (year % 400 != 0)
leap = 0;
else
leap = 1;
if(leap)
printf("%d是闰年\n", year);
else
printf("%d不是闰年\n", year);
return 0;
}
流程图:
截图;
22.
文字描述:
1.定义四个整型变量n,a,b,c;
2.输出普通字符;声明一个输入函数,存入n的值;
3.判断n是否小于100或大于999;是的话输出错误;
4.a=n/100,得到百位;b=n/10,得到十位;c=n/10,得到个位;
5.判断a,b,c的值是否为升序数;
6.是的话输出升序数字样,不是则输出不是升序数字样;
7.结束;
代码:
#include<stdio.h>
int main()
{
int n, a, b, c;
printf("请输入一个3位数:");
scanf_s("%d", &n);
if (n < 100 || n>999)
printf("输入错误!\n");
else
{
a = n / 100;
b = n / 10 % 10;
c = n / 10;
if (a < b && b < c)
printf("%d是升序数\n", n);
else
printf("%d不是升序数\n", n);
}return 0;
}
流程图:
截图:
第四章 总结:
4.2 关系运算符、逻辑运算符、条件运算符
4.2.1关系表达式和关系运算符
1.关系运算符
关系运算符用于判断两个操作数的大小关系。
2.关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符
关系表达式只能描述单一的条件。
2.逻辑表达式
用逻辑运算符将两个表达式连接起来的式子称为逻辑表达式。
4.2.3 条件运算符和条件表达式
1.条件运算符
条件运算符由“?”和“:”两个符号组成,用于条件求值,,它是一个三目运算符,需要三个操作数。条件运算符的优先级低于逻辑运算符、高于赋值运算符,它是右结合的。
2.条件表达式
用条件运算符将3个表达式连接起来的式子称为条件表达式。
4.3 使用if—else实现分支结构
4.3.1 if—else语句
1.双分支if语句
其一般形式为如下:
if(表达式)
语句1;
else
语句2;
2.单分支if语句
其一般形式如下:
if(表达式)
语句1;
4.3.2 if语句的嵌套
一个if语句中包含了一个或多个if语句的现象称为if语句的嵌套。
4.3.3 多分支if语句
多分支语句其一般形式如下:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if (表达式n-1)
语句n-1;
else
语句n;
4.4 使用switch语句实现分支结构
switch语句的一般形式如下:
switch(表达式)
{ case常量表达式1:语句1;break;
case常量表达式2:语句2;break;
...
case常量表达式n:语句n;break;
default:语句n+1;break;}
1.在switch语句格式中的每一个语句后面都使用break语句。
2.在switch语句格式中的部分语句后面都使用break语句。
3.在switch语句格式中不使用break语句。
switch语句中不使用break语句时,程序在执行相应语后,不会跳出正在执行的switch语句,而是会继续执行其后的所有语句。