for循环结构
在C语言中,`for`循环是一个用于重复执行某段代码的结构,直到满足特定的条件为止。`for`循环的基本语法如下:
```c
for (初始化; 条件; 更新) {
// 循环体
}
```
初始化:这是循环开始前的初始设置,通常用于设置循环变量的初始值。
条件:这是一个表达式,每次循环迭代前都会检查。如果表达式为真(非零),则执行循环体。如果为假(零),则退出循环。
更新:这通常是一个递增或递减操作,用于在每次循环迭代后更新循环变量。
循环体:这是`for`循环的主体部分,包含了要在每次迭代中执行的代码。
以下是一个简单的例子,使用`for`循环打印数字1到5:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
printf("%d\n", i);
}
return 0;
}
在这个例子中:
i = 1是初始化步骤,设置变量`i`的初始值为1。
i <= 5是条件表达式,检查`i`是否小于或等于5。如果是,继续执行循环体;否则,退出循环。
i++是更新步骤,每次循环迭代后将`i`的值增加1。
printf("%d\n", i);是循环体,打印当前`i`的值并换行。
运行这个程序,你将看到以下输出:
1
2
3
4
5
一些for循环的简单题目:
输入正整数n,利用循环计算等差数列1,2,3,......,n的和。
#include<stdio.h>
int main(){
int n,i,sum=0;
printf("输入n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=i;
printf("%d",sum);
return 0;
}
输入正整数n(2的倍数),利用循环计算等差数列2,4,6....n的和。
#include<stdio.h>
int main(){
int n,i,sum=0;
scanf("%d",&n);
printf("输入n:");
for(i=2;i<=n;i+=2)
sum+=i;
printf("%d", sum);
return 0;
}
输入正整数n,判断n是否为质数。
#include<stdio.h>
int main(){
int n,i;
printf("输入:");
scanf("%d",&n);
for(i=2;i<=sqrt(n);i++)
if(n%i==0){
printf("不是质数\n");
break;
}
if(i==((int)sqrt(n)+1))
printf("是质数\n");
return 0;
}
水仙花数是指一个3位数,它的每个数位上的数字的3次幂之和等于它本身。例如:1^3+5^3+3^3=153利用循环计算输出所有水仙花数。
#include<stdio.h>
#include<math.h>
int main(){
int i,n;
for(i=100;i<1000;i++)
if(pow(i%10,3)+pow(i/10%10,3)+pow(i/100,3)==i)
printf("%d ",i);
return 0;
}
for循环嵌套
在C语言中,for循环嵌套指的是一个for循环内部又包含了另一个或多个for循环。这种结构常用于处理多维数组、打印表格或进行复杂的迭代操作。下面是一个简单的示例,展示了如何使用嵌套的for循环打印一个5x5的星号(*)正方形:
#include <stdio.h>
int main() {
int i, j;
// 外层循环控制行数
for (i = 0; i < 5; i++) {
// 内层循环控制列数
for (j = 0; j < 5; j++) {
printf("* "); // 打印星号和空格
}
printf("\n"); // 每行打印完后换行
}
return 0;
}
在上面的代码中,外层循环负责控制行数,从0到4(共5行)。内层循环负责控制列数,也在0到4的范围内循环。在每次内层循环中,我们打印一个星号和一个空格。当内层循环完成后(即一行打印完毕),我们打印一个换行符,以便开始新的一行。
需要注意的是,嵌套的for循环会增加程序的复杂度,因此在编写嵌套循环时要特别注意循环变量的范围和循环条件,以避免出现死循环或逻辑错误。此外,合理设置循环变量和循环条件也是提高代码可读性和可维护性的关键。
一些for循环嵌套简单题目
输入正整数n和m,输出一个n行m列的矩形。
#include<stdio.h>
int main()
{
int n,m,j,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
printf("*");
printf("\n");}
return 0;
}
输入正整数n和m,输出一个n行m列的空心矩形 。
#include<stdio.h>
int main(){
int i,j,n,m;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++)
if(i==1||j==1||i==n||j==m)
printf("*");
else
printf(" ");
printf("\n");}
return 0;
}
输入正整数n,输出一个n行n列的三角形。
#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n) ;
for(i=1;i<=n;i++){
for(j=1;j<=i;j++)
printf("*");
printf("\n") ; }
return 0;
}
输出九九乘法表。
#include<stdio.h>
int main(){
int i,j,n;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++)
printf("%d*%d=%d ",i,j,i*j);
printf("\n");
}
return 0;
}