一、条件语句的代表性例子
1、if语句
#include<stdio.h>
int main()
{
int score=0;
scanf("%d",&score);
if(score>=90)
{
printf("成绩优秀\n");
}
else if(score>=80 && score<90)
{
printf("成绩良好\n");
}
else if(score>=60 && score<80)
{
printf("成绩及格\n");
}
else
{
printf("成绩不及格\n");
}
return 0;
}
2、switch语句
#include<stdio.h>
int main()
{
int num,num1=0,num2=0;
char z;
printf("请输入第一个整数");
scanf("%d",&num1);
printf("请输入第二个整数");
scanf("%d",&num2);
getchar(); //读取回车符并清除缓冲区
printf("请选择运算符‘+、-、*、/’");
scanf("%c",&z);
switch(z)
{
case'+': num=num1+num2;break;
case'-': num=num1-num2;break;
case'*': num=num1*num2;break;
case'/': num=num1/num2;break;
default:
printf("运算符错误");break;
}
return 0;
}
在使用scanf函数输入运算符时,可能会出现缓区的问题。scanf函数在读取字符时会将回车符'\n'留在输入缓冲区中,然后在下一次读取时首先读取到这个回车符,导致无法输入运算符。
可以在读取num2后增加一个getchar函数来读取回车符,将其从输入缓冲区中清除,然后再输入运算符。
3、三元运算符
对于条件表达式 b ? x : y,先判断条件 b 真假,如果 b 的值为 true ,那么返回表达式 x 的计算结果;否则,计算 y 的值,返回表达式 y 的计算结果。
#include <stdio.h>
int main() {
int x, y;
printf("请输入两个整数:\n");
scanf("%d %d", &x, &y);
int max = (x > y) ? x : y;
printf("较大的数是:%d", max);
return 0;
}
二、循环语句的代表性例子
1、while语句
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数 n:\n");
scanf("%d", &n);
int i = 1; // 初始化循环变量 i
while (i <= n) { // 当 i 不大于 n 时执行循环体
sum += i; // 累加 i 到 sum
i++; // 更新 i,使其加一
}
printf("从1到%d的整数累加和是:%d", n, sum);
return 0;
}
2、do-while语句
do-while循环与while循环的不同在于:
它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”
#include <stdio.h>
#include <string.h>
int main() {
char password[20];
int isCorrect = 0;
do {
printf("请输入密码:\n");
scanf("%s", password);
if (strcmp(password, "password123") == 0) {
isCorrect = 1;
} else {
printf("密码错误,请重试!\n");
}
}
while (isCorrect == 0);
printf("密码正确!\n");
return 0;
}
3、for语句
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数 n:\n");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
printf("%d ", i);
}
return 0;
}