C 語言-第四章、循環結構程序設計

4_1  循環結構概述3d

4_2  循環結構控制語句:for語句code

_2.1 for的通常形式:for(表達式1;表達式2;表達式3) input

                                    循環體語句io

[例4-1]   用for循環求「1+2+3……+100」的值。for循環

#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語句的使用class

for(表達式1;表達式2;表達式3)循環

       語句程序

注:表達式1,表達式2,表達式3可全省略或部分省略,可是「;」必定不能省。im

4_3   循環結構控制語句:while 語句與do ……while語句di

_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;
}
相關文章
相關標籤/搜索