一.用while语句实现的程序
#include <stdio.h>
int main()
{
int i=1, sum=0;
while (i<=100)
{
sum += i;
++i;
}
printf("%d\n", sum);
}
二.用do…while语句实现的程序
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
do
{
sum += i;
++i;
} while (i <= 100);
printf("%d\n", sum);
}
三.用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 结果有错误
四.for语句使用技巧(不鼓励)
//(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);
五.程序阅读
#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;
}
六.实践项目
1.三种循环语句,求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.输入n,求 n! 并输出
#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.输出1000以内能被3整除且个位数为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.编程序,输入10个整数,找出最大数
#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);
}