您的位置:首页 > 编程语言 > C语言/C++

C 语言-第四章、循环结构程序设计

2016-11-01 10:56 260 查看
4_1 循环结构概述
4_2 循环结构控制语句:for语句
_2.1 for的一般形式:for(表达式1;表达式2;表达式3)

循环体语句

[例4-1] 用for循环求“1+2+3……+100”的值。

#include<stdio.h>
int main()
{
int i,sum=0;
for (i=1;i<=100;i++)
sum=sum+i;
printf("1+2+3+……+100=%d\n",sum);
return 0;
}

_2.2 for语句的使用

for(表达式1;表达式2;表达式3)

语句

注:表达式1,表达式2,表达式3可全省略或部分省略,但是“;”一定不能省。

4_3 循环结构控制语句:while 语句与do ……while语句
_3.1 while 语句

【例4-2】

#include<stdio.h>
int main()
{
int i,sum=0;
i=1;
while (i<=100)
{
sum=sum+i;
i++;
}
printf("1+2+3+……+100=%d\n",sum);
return 0;
}


特点:先判断表达式,后执行语句。

注:如果不加花括号,while语句的范围只到while后面的第一个分号。

_3.2 do ……while语句

一般格式:do

循环体语句

while(表达式);

【例4-3】

#include<stdio.h>
int main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while (i<=100);
printf("1+2+3+……+100=%d\n",sum);
return 0;
}

注:while表达式后的“;”一定不能省略。

_3.3 while语句与do ……while语句的比较

4_4 循环的嵌套
_4.1 输出3*4的矩阵:

1 2 3 4

2 4 6 8

3 6 9 12

#include<stdio.h>
int main()
{
int i,j,n;
for (i=1;i<=3;i++)
for (j=1;j<=4;j++,n++)
{
if (n%4==0) printf("\n");
printf("%d\t",i*j);
}
printf("\n");
return 0;
}

【例4-6】输出九九乘法表。

#include<stdio.h>
int main()
{
int i,j;
for (i=1;i<=9;i++)
{
for (j=1;j<=i;j++)
{
printf("%d*%d=%-3d\t",i,j,i*j);
}
printf("\n");
}
return 0;
}

_4.2 break 语句和continue 语句

1. 用break语句提前终止循环。

2. 用continue语句提前结束本次循环,继续下次循环的判定。

4_5 循环结构程序举例
输入一个大于3的整数,判断它是否为素数。

【法1】 直接相除至n-1

#include<stdio.h>
int main()
{
int i,n;
printf("Please input a integer number n:");
scanf("%d",&n);
for (i=2;i<=n-1;i++)
if (n%i==0)  break;
if (i<n) printf("%d is not a prime number!\n",n);
else printf("%d is a prime number!\n",n);
return 0;
}

【法2】 直接相除至根号n

#include<stdio.h>
#include<math.h>
int main()
{
int i,n,k;
printf("Please input a integer number n:");
scanf("%d",&n);
k=sqrt(n);
for (i=2;i<=k;i++)
if (n%i==0)  break;
if (i<k) printf("%d is not a prime number!\n",n);
else printf("%d is a prime number!\n",n);
return 0;
}

【例4-9】

【4-10】 输入两个整型数,求它们的最大公约数和最小公倍数。

#include<stdio.h>
int main()
{
int m,n,r,t,temp;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
t=m*n;
if (m<n)
{
temp=m;
m=n;
n=temp;
}
while ((r=m%n)!=0)
{
m=n;
n=r;
}
printf("最大公约数是:%d\n",n);
printf("最小公倍数是:%d\n",t/n);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言