下面介绍一下for循环及其嵌套:
用for循环输出各种三角形以及求出1~100之间的素数是很常见的for循环应用;下面看一下代码,在代码中详细解释。在java中也是同样的道理
#include <stdio.h>
void main()
{
for (int i = 1; i < 10; i++)
{
for (int k = 10-i ; k >1; k--)
{
printf(" ");
}
for (int j = 1; j < i ; j++)
{
printf(" *");
}
printf("\n");
}
/*形状如下:
<span style="white-space:pre"> </span>思路:要想输出如下图形首先要输出" "而且每行递减,然后输出"*",每行递增:用最外层的
for循环来控制行数;内层的第一个for循环控制输出的空格数" ",让k值逐渐减小即可达到每行空格逐渐减少的效果。内层第二个循环控制输出的" *"。j值逐层+1即可完成" *"每行递增。
*
* *
* * *
*/
<pre name="code" class="cpp"><span style="white-space:pre"> </span>for (int i = 1; i < 10; i++)
{
for (int j = 1; j < i; j++)
{
printf(" ");
}
for (int k = 0; k < 10- i; k++)
{
printf(" *");
}
printf("\n");
}
/*
形状
* * *
* *
*
<span style="white-space:pre"> </span>思路:与上一个相似,外层循环控制行数。内层两个均与上一个相反;
*/
for (int i = 1; i < 10; i++)
{
for (int j = 10 - i; j > 1; j--)
{
printf("* ");
}
printf("\n");
}
/*
形状
* * *
* *
*
<span style="white-space:pre"> </span>思路:同样是外层for控制行数;内层控制"* "。j值逐渐减小"* "逐渐减少,相对简单。
*/
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < i; j++)
{
printf(" *");
}
printf("\n");
}
/*
形状
*
* *
* * *
<span style="white-space:pre"> </span>思路:内层逐渐增加即可,与上一个有异曲同工之妙。
*/
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < i; j++)
{
printf(" ");
}
for (int k = 0; k < 10 - i; k++)
{
printf(" *");
}
printf("\n");
}
/*
形状
* * *
* *
*
*/
for (int i = 1; i < 10; i++)
{
for (int k = 10 - i; k >0; k--)
{
printf(" ");
}
for (int j = 1; j < i; j++)
{
printf(" *");
}
printf(" \n");
}
/*
形状
*
* *
* * *
思路:与第一个第二个相似,只要控制好" "即可达到效果
*/
/*
输出1-100之间的素数
素数:只能被1和本身整除的整数
<span style="white-space:pre"> </span>思路:1-100逐渐递增,且判断素数的方法是用这个数去除以比他小的每一个数去判断,所以想到for循环。单独的for嵌套循环达不到效果,所以引入一个判断即可得出结果。当i除以j的余数为0时即可得出该数不是素数。跳出循环。
*/
for (int i = 2; i < 100; i++)
{
int j;
int k =0;
for (j = 2; j < i/2+1; j++)
{
if (i%j == 0)
{
k = 1;
break;
}
else
{
k = 0;
}
}
if (k == 0)
{
printf("素数为:%d\n", i);
}
}
getchar();
}