Sección 33 Tres tipos de declaraciones de bucle

1. Un programa implementado con la declaración while

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

2. Programa implementado con la declaración do ... while

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

3. El programa implementado con la instrucción for ()

#include <stdio.h>
int main()
{
    
    
	int i = 1, sum = 0;
	for (i = 0; i <= 100; ++i)
	{
    
    
		sum += i;
	}	
	printf("%d\n", sum);
}
运行结果:5050 结果正确
#include <stdio.h>
int main()
{
    
    
	int i = 1, sum = 0;
	for (i = 0; i <= 100; sum += i, ++i);
	printf("%d\n", sum);
}
运行结果:5050 结果正确
#include <stdio.h>
int main()
{
    
    
	int i = 1, sum = 0;
	for (i = 0; i <= 100; ++i, sum += i);
	//多加一次101,结果错误
	printf("%d\n", sum);
}
运行结果:5151 结果有错误

4. Habilidades para usar la declaración for (no se recomienda)

//(1)
int i=1,sum=0;
for(;i<=100;i++)
{
    
    
sum=sum+i;
}
//(2)
int i,sum=0;
for(i=1;;i++)
{
    
    
sum=sum+i;
if (i>=100)
break;
}
//(3)
int i,sum=0;
for(i=1;i<=100;)
{
    
    
sum=sum+i;
i++;
}
//(4)
int i=1,sum=0;
for(;i<=100;)
{
    
    
sum+=i;
i++;
}
//(5)
int i=1,sum=0;
for(;;)
{
    
    
sum=sum+i;
i++;
if(i>100) break;
}
//(6)
int i=1,sum=0;
for(i=1;i<=100;sum+=i,i++);
//(7)
int i=1,sum=0;
for(i=1;i<=100;sum+=i,i+=2);
//(8)
int sum = 0;
for (int i = 0; i <= 100; sum += i, ++i);

V. Programa de lectura

#include <stdio.h>
int main()
{
    
    
	char c1, c2;
	for (c1 = '0', c2 = '9'; c1 < c2; ++c1, --c2)
	{
    
    
		printf("%c %c\n", c1, c2);
	}
}
#include <stdio.h>
#include <windows.h>    //使用Sleep()函数必须包含windows.h,这种方法只适用于windows
int main()
{
    
    
    int i;
    for (i = 1; i <= 10; i++)
    {
    
    
        Sleep(200);   //等待200毫秒
        printf("■");
    }
    printf("\n");
    return 0;
}
#include <stdio.h>
#include <windows.h>    //使用Sleep()函数必须包含windows.h,这种方法只适用于windows
int main()
{
    
    
    int i;
    printf("安装进度:0%%");  //格式控制串中用%%表示输出一个%
    for (i = 1; i < 100; i++)
    {
    
    
        Sleep(100);
        if (i <= 10)
            printf("\b\b");  //\b表示将输出位置左移一位
        else
            printf("\b\b\b");
        printf("%d%%", i);
    }
    printf("\b\b\bdone!\n");
    return 0;
}

Seis. Proyectos prácticos

1. Tres declaraciones de bucle, encuentre la suma de todos los números pares dentro de 1000

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

2. Ingrese n, pregunte por n! Y envíe

#include <stdio.h>
int main()
{
    
    
	int n, sum = 1;
	scanf_s("%d", &n);
	for (int i = 1; i <= n; ++i)
	{
    
    
		sum *= i;
	}
	printf("%d\n", sum);
}
本程序在输入的n过大时,会超出整型数据类型表达的范围,产生“溢出”

3. Genere todos los números enteros dentro de 1000 que puedan ser divisibles por 3 y cuyo único dígito sea 6

解法1:好理解,循环次数多
#include <stdio.h>
int main()
{
    
    
	for (int i = 0; i < 1000; i++)
	{
    
    
		if (i % 3 == 0 && i % 10 == 6)
		printf("%d\n", i);
	}
}
解法2:更优代码,循环次数少
#include <stdio.h>
int main()
{
    
    
	int  i, j;
	for (i = 0; i < 100; i++) 
	{
    
    
		j = i * 10 + 6;
		if (j % 3 == 0)
			printf("%d\n", j); 
	}
}

4.Haga un programa, ingrese 10 enteros y encuentre el número máximo

#include <stdio.h>
int main()
{
    
    
	int  k, x, max;
	scanf_s("%d", &x);
	max = x;                 
	for (k = 2; k <= 10; k++)  
	{
    
    
		scanf_s("%d", &x);
		if (x > max)        

			max = x;
	}
	printf("Max=%d\n", max);
}

Supongo que te gusta

Origin blog.csdn.net/m0_51439429/article/details/115190979
Recomendado
Clasificación