1,循环输入5个元素,输出最大值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int arr[5],i,max;
printf("请输入第1个数:\n");
scanf("%d",&arr[0]);
max=arr[0];
for(i=1;i<5;i++)
{
printf("请输入第%d个数:\n",i+1);
scanf("%d",&arr[i]);
if(arr[i]>max)
max=arr[i];
}
printf("最大值为:%d\n",max);
return 0;
}
结果为:
2.任意输入一个数,计算是否是素数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, const char *argv[])
{
int num,i;
err:
printf("请输入一个数:\n");
scanf("%d",&num);
if(num<2)
goto err;
int t=0;
for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
t++;
}
}
if(t==0)
printf("%d是素数\n",num);
else
printf("%d不是素数\n",num);
return 0;
}
结果为:
一、循环结构
当重复执行同一段代码时,多采用循环实现
循环分类:while\do..while\for
while/for:当型循环,先判断,后执行
do..while: 直到型循环,先执行,后判断
1.1 while
while是当型循环,最少执行0次
格式1:
表达式1;
while(表达式2)
{
循环体;
表达式3;
}
格式2:
while(表达式2)
{
循环体;
}
注意:
1,表达式1:表示初值,可以省略不写
2.表达式2:表示条件,不可以省略
3.表达式3:表示步长,可以省略不写,一般不省略
4.while循环后面不加分号。如果有分号不报错,但是不能实现循环
5.{}里面只有一条语句时,可以省略不写
6.死循环:while(1)
1.2 do..while
do...while直到型循环,最少执行1次,先执行后判断
格式1:
表达式1;
do
{
循环体;
表达式3;
}while(表达式2);
格式2:
do
{
循环体;
}while(表达式2);
解析:
1> do..while后面必须加分号
2> 表达式1:初始值
3> 表达式2:条件
4> 表达式3:步长
5> 如果{}里面只有一条语句,可以省略不写
1.3 for
for循环属于当型循环,先判断,后执行,最少执行0次
格式:
for(表达式1;表达式2;表达式3)
{
循环体;
}
解析:
1.表达式1:表示初始值,可以是多个,中间使用逗号隔开,可以省略不写
2.表达式2:条件,可以是多个,一般使用逻辑运算链接,可以省略不写
3.表达式3:表示步长,可以是多个,中间使用逗号隔开,可以省略不写
4.for循环里面的分号不可以省略for(;;)
5.{}里面只有一条语句时,可以省略不写
6.当省略表达式1、2、3时,是死循环for(;;),等价于for(1;1;1)
1.4 goto实现循环
goto是有害的,太灵活,但是在使用是没有问题,不建议使用
格式:
标识符:
goto 标识符;
解析:标识符需要满足命名规范
1.5 跳转语句
i)break;
作用:直接跳出循环【while for do..while】,以及switch
注意:break不可以单独只用在if
for(int i=0;i<3;i++)
{
if(i%2!=0)
{
break; //结束本层循环
}
printf("*"); *
}
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
break; //break只可以跳出一层循环,跳出内层循环
}
}
ii)continue
作用:使用于循环【for\while\do..while】
continue: 跳出本次循环,进入下次循环,实际跳出continue下面的C语句
for(int i=1;i<10;i++)
{
if(i%3==0)
{
continue; //当i=3是执行continue后,跳过后面的语句,直接执行i++,进入下次循环
}
printf("1");
printf("2");
}
iii)return
return: 结束函数、返回
iiii)exit
格式:exit(常量)
exit(0): 退出整个程序,且正常退出
exit(非0): 异常退出
iv)goto
任意跳转语句