㈠ c语言 循环嵌套
由外到内,逐层完成,for循环的方法你应该知道了吧,我就不一一说了。
首先进行最外面的循环,第一次
i=1
,进入循环体,由于他的循环体是另一个循环,也就是执行另一个循环,
首先由
j=0
开始,然后有进入循环体。。。也就是执行第三层循环,在你上面的程序来说
,完成第三个循环一共要循环
7次
,k
从
2
到
10
(等于10的时候跳出去,实际执行9次)。
然后,第二层循环进行了
1
次
,j
由
0
变成
1
,继续循环,也就是从新开始
第三层循环。这样一直下去,知道
j=10
跳出了第二层循环
,第一个循环才
完成了
1次
,i
由1变成
2,继续又进入到第二层,第三层循环,在一层一层跳出来,直到跳出最外层循环为止。
用一句话来说就是
逐层进入,逐层完成,逐层跳出。
㈡ 如何用c语言的循环嵌套输出有对角线的正方形
//JHTP Exercise 4.29:Square of Asterisks
//by [email protected]
/**(Square of Asterisks) Write an application that prompts the user to enter the size of the side
of a square, then displays a hollow square of that size made of asterisks. Your program should work
for squares of all side lengths between 1 and 20.*/
import java.util.Scanner;
public class SquareOfAsterisks {
public static void main (String[] args){
Scanner input=new Scanner(System.in);
System.out.print("请输入要输出的正方形大小(整数):");
int size=input.nextInt();
int number=1;
int sentinel=1;
while (sentinel<=size){
while (number<=size){
System.out.print("*");
number++;
}
System.out.print("\n");
number=1;
sentinel++;
}
}
}
㈢ c语言输入一个正方形
#include<stdio.h>
intmain()
{
intn; //正方形的边长
inti,j; //循环变量
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==0||j==n-1||i==0||i==n-1)
{
printf("*");
}
else
{
printf("");
}
}
printf(" ");
}
return0;
}
㈣ c语言问题,答案是25个点组成的正方形图案,那个过程看不懂,求解释为什么这么编程,越详细越好,好的加分
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
-----------------------------
上图是执行结果,以下是分析:
#include <stdio.h>
void main()
{
int i,j,k;
//外循环4次,首先要打印的是上半部分三角形
for(i=0;i<=3;i++)
{
/*
这里是为了打印每行开头预留的空格,显然随着行号i增大,j能循环次数越小,
那么行的开头能打印的空格就越少,于是出现了塔式结构,即正三角
*/
for(j=0;j<=2-i;j++)
{
printf(" ");//输出空格
}
/* 打印星花
星花数与行号的关系就是k=2i+1 2倍+1关系
循环条件如果改写成for (k = 0; k < 2 * i + 1; ++k)更容易看出这种关系
你也可以看出
for(k=0;k<=2*i;k++)
{
printf("* ");
}
printf("\n");
}
// 外循环3次,用来打印下部分三角形
for(i=0;i<=2;i++)
{
/*
这里的分析同上面一样
*/
for(j=0;j<=i;j++)
{
printf(" ");
}
/* 打印星花
分析与上面的打印星花分析过程一样
*/
for(k=0;k<=4-2*i;k++)
{
printf("* ");
}
printf("\n");
}
}
㈤ c语言 for循环嵌套
循环的过程是先执行第一个大循环for(i=0;i<3;i++),此句中先给i赋值0,在判断条件i<3是否成立赋值后的i=0了,所以条件成立,成立则做下面一条语句,就是for(j=0;j<4;j++),同样这个循环还是先赋值j=0,在进行判断j<4是否成立,成立就再做下一句。
此时scanf语句后面已经没有语句了,所以程序就会跳上去到第二个循环中,即for(j=0;j<4;j++)这句话中,可能你会问为什么不是第一句
(因为在循环嵌套中只有循环体执行完成所以的任务后才执行下面的语句,就是for(j=0;j<4;j++)
要全部执行完毕才能执行后面的语句。即j<4条件为假时跳出)跳到for(j=0;j<4;j++)这个循环体以后。就会自动加一,就是执行j++(注:在这个for里面的j=0不再执行),这个赋值过程只在开始时执行。所以 j 这个循环要执行到条件不满足时停止,即最后j的值要>=4.。
这样 j 这个循环就结束了。结束后又跳到了第一句。因为第二个for是包含在第一个for 里的。只有第一个for 里包含的语句全部执行完后第一个for就再一次执行i++,i 变成了2,判断条件i<3成立,就再执行下一句,所以下面的for(j=0;j<4;j++)又要再一次执行。执行完后就在回到第一个for执行。
原理:
i=0,j 执行4次,给a[0][0],a[0][1],a[0][2],a[0][3]赋值
i=1,j 执行4次,给a[1][0],a[1][1],a[1][2],a[1][3]赋值
i=2,j 执行4次,给a[2][0],a[2][1],a[2][2],a[2][3]赋值
i=3跳出.
还有不懂再问
㈥ 如何用C语言做一个(边数为5个*)的正方形框架。谢谢。
最简单的办法
printf("*****");
printf("*
*");
printf("*
*");
printf("*
*");
printf("*****");
用五个printf就可以搞定
当然也可以用复杂的
比如说
循环
数组
再看看别人怎么说的。
㈦ 问下各位,这个C语言输出正方形
这个是命令行属性所致,每行之间有一定的行距。程序本身没有问题。
至于为什么有行距,你想一下,如果每行之间没有间距,你打印图形确实会好看了,但显示文字呢?岂不就很难看了?
一个小提醒,既然大的for循环中 i 是指行数,就不需要再定义count了,直接用 i 即可。
㈧ C语言 输出正方形,不知道哪错了,求解
??\r\nlz可能搞混了一些概念(这是使用ide的初学者常犯的)\r\nc语言必须编译成可执行文件才可运行,也就是必须要编译器(这个解释器在这里没用)。、\r\nlz将ide与编译器混为一谈,实际编译器只是被ide调用而已,不属于ide本身\r\nlz的问题是:不用ide如何编写、运行程序吧。\r\n可以使用命令行(运行
输入
cmd)\r\n执行
cl
+
file.c
(若已装vc,
cl具体使用请另行参考)
㈨ 求助 C语言用for语句循环嵌套输出以下图形 蟹蟹啦
按照你的要求编写的用for语句循环嵌套输出以下图形的C语言程序如下
#include <stdio.h>
int main()
{
int i,j,N=6;
for(i=1;i<=N;i++){
for(j=1;j<=N-i+1;j++){
printf("*");
}
printf(" ");
}
return 0;
}
㈩ (C语言)用循环嵌套输出图形: 急急急
#include<stdio.h>
intmain(void)
{
inti,j,k;
for(i=0;i<=3;i++)//这个是控制要输出几行“*”
{
for(j=0;j<=2-i;j++)//这个控制每行输出几个“空格”,跟i的关系来决定的
printf("");
for(k=0;k<=2*i;k++)//这个控制输出空格之后,需要输出几个“*”号,
printf("*");
printf(" ");//在外层循环内部,内层循环的外部,意思内层循环结束一次后,换行。
}
}