判断
用if做判断
if语句
使用例
#include <stdio.h>
int main(){
if(表达式){
//语句
}else{
//语句
}
return 0;
}流程图是

还有一个是switch case语句(但是更多是去做多路分支这里先不讲)
循环
while 语句
和if相似,当条件满足就不断做后面大括号的句子
使用例
#include <stdio.h>
int main(){
while(表达式){
//语句
}
return 0;
}流程图是

要有调整才能跳出循环,否则会进入死循环(条件成立会进入条件循环)
do-while 语句
先做循环然后再去判断
使用例
#include <stdio.h>
int main(){
do{
//语句
}while(表达式);
return 0;
}流程图是

do-while会先执行循环代码后去判断条件
for 循环
for循环像一个计数循环:设定一个计算器,初始化它,然后在计算器到达某值之前,重复执行循环体,而每执行一轮循环,计算器值以一定步进进行调整
使用例
#include <stdio.h>
int main(){
for(初始条件;循环条件;循环动作){
//语句
}
return 0;
}流程图是

switch-case 多路分支
Switch 可看作一种基于计算的跳转,计算控制表达式的值后,程序会跳转相匹配的 case(分支标号)处,在执行完最后一条语句后,如果后方无 break,则会顺序执行到下面的 case 里去,直到遇到一个 break 或 switch 结束为止。
在 switch 里的所有句子它们处在同一空间中,可无视所有 case,将其认作是一个连续执行的语句的序列,只是当出现 break 时会打断当前语句的序列。 case 则是决定从哪里开始做事(执行)的位置。
使用例
#include <stdio.h>
int main(){
switch(控制表达式){
case 常量1:
//语句
case 常量2:
//语句
default:
//语句
}
return 0;
}控制
break
永久停止当前循环
continue
在循环中意味着继续执行下一次循环
它们的流程图是

练习
随机数的生成-猜数字
rand(void) 使用例 int = rand() 生成一个随机数 如何限制它的范围:
例如:生成一个1-100之间(不包括100) int a = rand() % 100
用a去承接生成的随机数 可以用这个来写猜数字的小游戏练手了
平均数
每读入一个数,将它加入到累加的和的变量,之后把输入的值相加,读到个负数代表输入完毕,之后计算
流程图

整数逆序
一个数是由多位数字组成的, 如何分解出整数的各个位上的数字,后加以计算
个位:对整数做 %10 对整数做 /10 十位:对对整数做 /10 做 %10 依此类推。
输入数字(整数)整型①变量 先取模得到个位(1234%10=1234/10的余数) 用一个变量存下个位的值②=0 将①后除10来减少1位数(1234/10→123,因为是取整数,所以4被舍弃了) 然后把减少的1位数字的那个数存回①变量里(123→x)x=123 将①的值再%10得到个位,(123%10)→3 此时第1次存下的之前的值乘10来变十位,此次的值加入,成为个位(4×10+3)→43 将①/10减一位数(123%10=12) 依次类推
猜数字答案
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main(void){
srand(time(NULL));
int numb = rand()%100+1;
unsigned int times =0;
int enternumber =0;
const int yuqi =7;
printf("这是一个猜数字游戏\n");
Sleep(1000);
printf("范围是1-100\n");
Sleep(1000);
printf("准备好了吗\n");
Sleep(1000);
printf("3\n");
Sleep(1000);
printf("2\n");
Sleep(1000);
printf("1\n");
Sleep(1000);
printf("游戏开始了\n");
printf("请输入这个数字\n");
scanf("%d",&enternumber);
times++;
do
{
if(enternumber!=numb){
if(enternumber>numb){
printf("你输入的数字大了\n");
times++;
printf("请再次输入这个数字\n");
scanf("%d",&enternumber);
}
if (enternumber<numb)
{
printf("你输入的数小了\n");
times++;
printf("请再次输入这个数字\n");
scanf("%d",&enternumber);
}
}
} while (enternumber!=numb);
Sleep(1000);
printf("恭喜你猜对了,数字是%d,你用了%u次\n",numb,times);
if (yuqi<times)
{
printf("但是比预期慢");
};
if(yuqi>times){
printf("比预想的更好呢,继续加油");
};
if(yuqi==times){
printf("和预期一样的完美");
};
printf("游戏将会在10s后自动关闭");
Sleep(10000);
return 0;
}平均数答案
#include <stdio.h>
int main() {
int sum = 0;
int count = 0;
int num =0;
while (1)
{
printf("Enter a number (enter -1 to stop):\n ");
scanf("%d",&num);
if(num==-1)
{
break;
}
count++;
sum=num+sum;
}
if(count>0){
double avg;
avg = (double)sum / count;
printf("average is %f \n",avg);
printf("your enter %d times\n",count);
}else{
printf("no enter the number");
}
return 0;
}整数逆序答案
#include <stdio.h>
int main(){
int x;
int num;
int returnd =0;
scanf("%d",&x);
while(x>0){
num =x%10; //取个位
//printf("%d",num); //输出个位数
returnd=returnd*10+num;
printf("x=%d\nnum=%d\nreturnd=%d\n",x,num,returnd);
x /= 10;
}
printf ("%d\n",returnd);
}
Comments NOTHING