![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言 for嵌套循环和数组问题..
#include<stdio.h>voidmain(){intx,y;clrscr();for(x=1;x<=9;x++){for(y=1;y<=x;y++)printf...
#include<stdio.h>
void main()
{
int x,y;
clrscr();
for(x=1;x<=9;x++)
{
for(y=1;y<=x;y++)
printf("%d*%d=%d",x,y,x*y);
printf("\n");
}
getch();
}
有两个循环,为了方便命名为x的循环和y的循环吧..
我的问题1.先执行x的循环,得出x值为1,然后执行y的循环,得出y值为1,判断成立之后,输出,输出完了之后呢?回到两个循环的那个里面继续呢?
2.如果说是回到y的循环中,那x的值为多少呢,还是1么?还是x同时也在变呢?当y循环判断不成立时候才能回到x的循环么?(若问题1是回到x 的循环,则问题2忽略..)
3.把这个嵌套循环仔细解释一下..
#include<stdio.h>
void main( )
{
int f[20];
int i;
f[0]=1;
f[1]=1;
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++)
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
}
printf("\n")
还是嵌套的循环,只不过加入了数组
问题1.第一个循环判断成立之后,执行下面语句,执行完了之后呢?进行下一个循环么?如果是的话f[i]的值怎么办?为什么下一个循环的i初值又为0了呢?两个i不是同一个么?f[i]的值用在哪里呢?
2.为什么还要加if判断,判断什么呢?
3.判断成立与否都会继续返回循环么?
详细解释一下这两个程序的循环吧..对于这个我有点混乱.
我是初学者..问题比较多,大家多担待~
难道说f[i]的值一直保留着,跟着程序走到最后输出?
第一个问题很对?怎么对了?麻烦回答我的问题,第一道题,我有两种想法,是回到循环x,和回到循环y..哪个对呢? 展开
void main()
{
int x,y;
clrscr();
for(x=1;x<=9;x++)
{
for(y=1;y<=x;y++)
printf("%d*%d=%d",x,y,x*y);
printf("\n");
}
getch();
}
有两个循环,为了方便命名为x的循环和y的循环吧..
我的问题1.先执行x的循环,得出x值为1,然后执行y的循环,得出y值为1,判断成立之后,输出,输出完了之后呢?回到两个循环的那个里面继续呢?
2.如果说是回到y的循环中,那x的值为多少呢,还是1么?还是x同时也在变呢?当y循环判断不成立时候才能回到x的循环么?(若问题1是回到x 的循环,则问题2忽略..)
3.把这个嵌套循环仔细解释一下..
#include<stdio.h>
void main( )
{
int f[20];
int i;
f[0]=1;
f[1]=1;
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++)
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
}
printf("\n")
还是嵌套的循环,只不过加入了数组
问题1.第一个循环判断成立之后,执行下面语句,执行完了之后呢?进行下一个循环么?如果是的话f[i]的值怎么办?为什么下一个循环的i初值又为0了呢?两个i不是同一个么?f[i]的值用在哪里呢?
2.为什么还要加if判断,判断什么呢?
3.判断成立与否都会继续返回循环么?
详细解释一下这两个程序的循环吧..对于这个我有点混乱.
我是初学者..问题比较多,大家多担待~
难道说f[i]的值一直保留着,跟着程序走到最后输出?
第一个问题很对?怎么对了?麻烦回答我的问题,第一道题,我有两种想法,是回到循环x,和回到循环y..哪个对呢? 展开
3个回答
展开全部
第一个问题很对。
第二个你写错了啊 .. 少了大括号。那是并列的两个循环。。。
f[i]存的是数列的第i项,这个应该是斐波那契数列 ..
那个判断就是说每行五个数
for (i=2;i<20;i++) f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++) {if(i%5==0)printf("\n"); printf ("%3d",f[i]);}
en ..这个应该是程序的原意。
第二个你写错了啊 .. 少了大括号。那是并列的两个循环。。。
f[i]存的是数列的第i项,这个应该是斐波那契数列 ..
那个判断就是说每行五个数
for (i=2;i<20;i++) f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++) {if(i%5==0)printf("\n"); printf ("%3d",f[i]);}
en ..这个应该是程序的原意。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分数蛮多,回答一下。
1,按照程序的意思,解释一下,x循环1~9,y循环1~x
第一次,x=1,y=1,y循环完。
第二次,x=2,y从1到2,第二个y循环完;
以此类推。
最后一次,x=9,y从1一直变化到9,第九个y循环完
x循环完毕。
2,y循环退出后,x值增1,y重新由1至x循环。
当y循环判断不成立时候才能回到x的循环么?(若问题1是回到x 的循环,则问题2忽略..)
答案是。
3.
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个循环是给f数组赋值。斐波那契数列
for (i=0;i<20;i++)
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
这个是,把数组中的值打出来,不过每5个回车而已。
希望我解释的足够清楚。
1,按照程序的意思,解释一下,x循环1~9,y循环1~x
第一次,x=1,y=1,y循环完。
第二次,x=2,y从1到2,第二个y循环完;
以此类推。
最后一次,x=9,y从1一直变化到9,第九个y循环完
x循环完毕。
2,y循环退出后,x值增1,y重新由1至x循环。
当y循环判断不成立时候才能回到x的循环么?(若问题1是回到x 的循环,则问题2忽略..)
答案是。
3.
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个循环是给f数组赋值。斐波那契数列
for (i=0;i<20;i++)
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
这个是,把数组中的值打出来,不过每5个回车而已。
希望我解释的足够清楚。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个其实是很基础的东西。
1、输出完之后y++,然后判断y<=x,不成立,往下执行。输出回车。x在Y循环里面没有改变值。因为没有重新给值,也没有X++类似的代码。
FOR的执行方式是
FOR(x=0,x<=9;x++)
{}
先执行第一个表达式x=0;然后判断X<=9是否成立,成立进入{}内执行。
执行完{}里面的代码出来后X++,X++后判断X<=9是否成立,不成立退出循环;
所以执行完这个代码最后。X是等于10的。
第二节应该是这样子的吧
#include<stdio.h>
void main( )
{
int f[20];
int i;
f[0]=1;
f[1]=1;
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
}
printf("\n")
}
1、第一个循环是为了生成数据,第二个循环是为了打印输出。
if()是为了5个一组打印出来的。
第一个程序是双重嵌套,第二个程序不是双重嵌套。
1、输出完之后y++,然后判断y<=x,不成立,往下执行。输出回车。x在Y循环里面没有改变值。因为没有重新给值,也没有X++类似的代码。
FOR的执行方式是
FOR(x=0,x<=9;x++)
{}
先执行第一个表达式x=0;然后判断X<=9是否成立,成立进入{}内执行。
执行完{}里面的代码出来后X++,X++后判断X<=9是否成立,不成立退出循环;
所以执行完这个代码最后。X是等于10的。
第二节应该是这样子的吧
#include<stdio.h>
void main( )
{
int f[20];
int i;
f[0]=1;
f[1]=1;
for (i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for (i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf ("%3d",f[i]);
}
printf("\n")
}
1、第一个循环是为了生成数据,第二个循环是为了打印输出。
if()是为了5个一组打印出来的。
第一个程序是双重嵌套,第二个程序不是双重嵌套。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询