七天学会C语言-第二天(数据结构)
1. If 语句:
If
语句是一种条件语句,用于根据条件的真假执行不同的代码块。它的基本形式如下:
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
写一个基础的If
语句
#include<stdio.h>
int main(){
int x = 10;
if (x > 5){
printf("x 大于 5n");
} else{
printf("x 不大于 5n");
}
}
运行结果:
例 1:输入一个整数,如果该数大于 80,则输出“小翟帅”;如果该数不大于 80,则输出“小翟贼帅”。
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
if (a > 80) {
printf("小翟帅n");
} else {
printf("小翟贼帅n");
}
return 0;
}
运行结果(以输入88为例):
例 2:有一函数
请编一个程序,输入一个整数 x 时,输出相应的 y 值。
#include <stdio.h>
int main() {
int x, y;
scanf("%d", &x);
if (x < 0) {
y = -1;
} else if (x > 0) {
y = 1;
} else {
y = 0;
}
printf("x=%d, y=%dn", x, y);
return 0;
}
运行结果(以输入2为例):
例 3:输入两个实数 a、b,按数值由小到大的顺序输出这两个数。
#include <stdio.h>
int main() {
double a, b, t;
scanf("%lf, %lf", &a, &b);
if (a > b) {
t = a;
a = b;
b = t;
}
printf("%f, %fn", a, b);
return 0;
}
运行结果(以输入2,11为例):
例 5:输入三个实数 a、b、c,按数值由小到大的顺序输出这三个数。
#include <stdio.h>
int main() {
double a, b, c, t;
scanf("%lf, %lf, %lf", &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("%f, %f, %fn", a, b, c);
return 0;
}
运行结果(以输入7,11,1为例):
2. 常见表达式形式:
C语言中有许多常见的表达式形式,包括算术表达式、关系表达式和逻辑表达式等。这些表达式用于执行各种计算和比较操作。例如:
- 算术表达式:
a + b
,x * y
,z / 2
- 关系表达式:
x == y
,a < b
,c >= d
- 逻辑表达式:
(x > 5) && (y < 10)
,(a == b) || (c != d)
以下是您提供的例子,已按照正确的C语言格式进行排版和输出:
例 1:有一函数
请编一个程序,输入一个整数 x 时,输出相应的 y 值。第一种编法:
#include <stdio.h>
int main() {
int x, y;
scanf("%d", &x);
if (x < 0) {
y = -1;
} else if (x > 0) {
y = 1;
} else {
y = 0;
}
printf("x=%d, y=%dn", x, y);
return 0;
}
运行结果(以输入1为例):
第二种编法:
#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=%dn", x, y);
return 0;
}
运行结果(以输入2为例):
例 2:请编一程序,判断某一年是否是闰年。
#include <stdio.h>
int main() {
int a;
printf("请输入年份n");
scanf("%d", &a);
if ((a % 100 != 0 && a % 4 == 0) || a % 400 == 0) {
printf("%d 年是闰年n", a);
} else {
printf("%d 年不是闰年n", a);
}
return 0;
}
运行结果(以输入2023为例):
例 3:输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
printf("%cn", ch);
return 0;
}
运行结果(以输入a为例):
3. 表达式1?表达式2:表达式3:
这是C语言中的条件运算符(也称为三元运算符)。它允许根据条件的真假选择执行不同的表达式。其语法如下:
条件 ? 表达式1 : 表达式2
如果条件为真,则表达式1的值被返回;如果条件为假,则表达式2的值被返回。例如:
int x = 10;
int y = (x > 5) ? 20 : 30;
在这个例子中,因为 x
大于5,所以 y
的值将是20。
以下是您提供的两个示例,已按照正确的C语言格式进行排版和输出:
例 1:输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。第一种编法:
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
printf("%cn", ch);
return 0;
}
运行结果(以输入a为例):
例 1:第二种编法:
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;
printf("%cn", ch);
return 0;
}
运行结果(以输入a为例):
例 2:输入两个实数 a、b,按数值由小到大的顺序输出这两个数。第一种编法:
#include <stdio.h>
int main() {
double a, b, t;
scanf("%lf, %lf", &a, &b);
if (a > b) {
t = a;
a = b;
b = t;
}
printf("%f, %f n", a, b);
return 0;
}
运行结果(以输入5,8为例):
例 2:第二种编法:
#include <stdio.h>
int main() {
double a, b;
scanf("%lf, %lf", &a, &b);
a > b ? printf("%f, %f n", b, a) : printf("%f, %fn", a, b);
return 0;
}
运行结果(以输入8,7为例):
4. Switch语句:
Switch
语句是一种多分支的条件语句,用于根据表达式的值选择执行不同的分支。其基本形式如下:
switch (表达式) {
case 值1:
// 当表达式等于值1时执行的代码
break;
case 值2:
// 当表达式等于值2时执行的代码
break;
// 更多 case 分支
default:
// 如果表达式不等于任何一个值时执行的代码
}
Switch
语句的每个 case
分支代表一个可能的值,当表达式的值匹配某个 case
时,执行该分支的代码。如果没有匹配到任何一个 case
,则执行 default
分支(可选)。例如:
int day = 3;
switch (day) {
case 1:
printf("星期一n");
break;
case 2:
printf("星期二n");
break;
// 更多 case 分支
default:
printf("其他n");
}
例 1:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段。
#include <stdio.h>
int main() {
char dengji;
scanf("%c", &dengji);
switch (dengji) {
case 'A':
printf("该生分数为 85~100n");
break;
case 'B':
printf("该生分数为 70~84n");
break;
case 'C':
printf("该生分数为 60~69n");
break;
case 'D':
printf("该生分数为<60n");
break;
default:
printf("该生的等级输得不对!n");
break;
}
return 0;
}
运行结果(以输入A为例):
例 2:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段。
#include <stdio.h>
int main() {
char dengji;
scanf("%c", &dengji);
switch (dengji) {
case 'A':
case 'B':
printf("该生分数为 70~100n");
break;
case 'C':
case 'D':
printf("该生分数为<70n");
break;
default:
printf("该生的等级输得不对!n");
break;
}
return 0;
}
运行结果(以输入A为例):
例 3:某课成绩原为百分制,现要将其转成等级。
#include <stdio.h>
int main() {
double fenshu;
printf("请输入分数:");
scanf("%lf", &fenshu);
switch ((int)(fenshu / 10)) {
case 10:
case 9:
printf("该生等级为 An");
break;
case 8:
printf("该生等级为 Bn");
break;
case 7:
printf("该生等级为 Cn");
break;
case 6:
printf("该生等级为 Dn");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("该生等级为 En");
break;
default:
printf("你特么输的是成绩?!n");
break;
}
return 0;
}
运行结果(以输入1为例):