if else
- if else后面可以没有花括号,没有的话只能控制一条语句(遇到的第一个分号)
- 可以单独使用if,if后面可以没有else,但是else前面必须有if
练习:题目:说出以下代码的执行结果
int main()
{
int a=10;
printf("0");
if(a>10);
printf("1");
else
printf("4");
printf("5");
printf("6");
}
报错
- 可以嵌套 if中可以包裹if
for循环
语法结构:
定义一个变量;
for(表达式1;表达式2;表达式3)
{
//循环执行的语句;
}
表达式1: 给循环变量赋初始值
表达式2:循环结束条件(进入循环的条件)
表达式3:循环变量递增或者递减
执行顺序:先定义变量,执行表达式1,判断表达式2,如果表达式2满足进入循环,执行循环的语句块,执行完成语句块后执行表达式3,再次判断表达式2,如果满足进入循环,执行循环的语句块,执行表达式3,.....如果不满足,跳出循环,结束程序。
int i;
for (i=0;i<5;i++)
{
printf("对不起,我错了\n");
}
// 定义了一个变量i
//i=0;i<5--->满足进入循环,进入{},输出“对不起” --1次; --- 执行i++ i=i+1=1
//i=1;i<5--->满足进入循环,进入{},输出“对不起” ---2次;--- 执行i++ i=i+1=2
//i=2;i<5--->满足进入循环,进入{},输出“对不起” ---3次;--- 执行i++ i=i+1=3
//.......
//i=5;i<5--->不满足 ,跳出循环,循环结束
练习:
使用循环输出1-20,但是10不输出
程序中判断相等使用 == 判断不相等使用 !=
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i;
for (i = 1; i <=20; i++)
{
if (i==10);
else
{
printf("%d\n",i);
}
}
return 0;
}
答案:D
s=s+i+1
第一次:i=1 s=0+1+1=2 i=i+2=3
第二次:i=3 s=2+3+1=6 i=i+2=5
第三次:i=5 s=6+5+1=12 i=7
第四次:i=7 s=12+7+1=20 i=9
i=9 s=20+9+1=30 i=11 ---跳出 s=0+2+4+6....10
练习:
打印所有的水仙花数,
水仙花数:一个三位数,百位立方+十位立方+个位立方 = 原数 例如:153就是水仙花数
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i;
for (i = 100; i<=999; i++)
{
int g=i%10; //个位
int s=i/10%10; //十位
int b= i/100; //百位
if (g*g*g+s*s*s+b*b*b==i)//是不是水仙花数
{
printf("%d ",i);
}
}
return 0;
}
练习:
答案:3. C 4. D
while循环
基本格式:
定义循环变量同时赋初始值;
while(判断条件)
{
//循环语句块;
递增或者递减;
}
int i=0;
while (i<10)
{
printf("对不起 第%d次\n",i+1);
i++;
}
//i=0; i<10-->满足 进入循环 输出对不起,i+1;
//i=1;i<10--->满足 进入循环 输出对不起,i+1;
//....
//i=10 i<10---》不满足 跳出循环
练习:
使用while循环完成水仙花数
并最后输出一共有几个
#include <stdio.h>
int main(int argc, char const *argv[])
{
//
int i=100;
int num=0;//计数
while (i<1000)
{
int g=i%10; //个位
int s=i/10%10; //十位
int b= i/100; //百位
if (g*g*g+s*s*s+b*b*b==i)
{
printf("%d \n",i);
num=num+1;
//num++ num+=1
}
i++;
}
printf("num=%d\n",num);
return 0;
}
死循环:
for(;;){ }
while(1){ }
跳出循环:break --- 直接结束循环
注意:{}是一个单独的作用域,定义在花括号中的变量只能在当前范围内使用,也只在当前范围内生效!
int i=5;
while (i<10)
{
if (i==0)
{
break;
}
printf("%d\n",i);
i--;
}
练习:
循环 输入一个5位数,判断它是不是回文数。当输入0时循环结束。
即12321是回文数,个位与万位相同,十位与千位相同。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num;
while (1)
{
printf("请输入一个5位数:");
scanf("%d", &num);
if (num == 0)
{
break;
}
if (num / 10000 == num % 10)
{
if (num / 10 % 10 == num / 1000 % 10)
{
printf("%d是回文数\n", num);
}
}
else
{
printf("%d不是回文数\n", num);
}
}
return 0;
}
练习:
1. 100>1&&'a'>'b' ----> 0
printf("%d",100>1&&'a'>'b' );
2. 100>1 || 'a'>'b' ----> 1
- !(100>1) ----> 0
4. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培养的学员人数将达到20万人?
#include <stdio.h>
int main(int argc, char const *argv[])
{
int year=2006;
int people=80000;
while (people<200000)
{
people= people*0.25+people;
year++;
}
printf("%d\n",year);
return 0;
}
标签:10,num,int,基础,C语言,循环,printf,表达式
From: https://blog.csdn.net/m5127/article/details/143372269