for语句的镶嵌是怎么回事?

问题描述

for语句的镶嵌是怎么回事?
int ntijsum=0;
scanf(""%d""&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)

    t=t*j; sum=sum+t;

}
printf(""%d""sum);
system(""pause"");

解决方案

首先这段代码的功能是执行楼上所说的计算:1!+2!+3!+...+n! 的和
然后运行情况:
(注:for循环中,如果不加大括号,默认的只执行for后的一个语句)
假设:n=4;
1.进入for(i=1;i<=n;i++)中:
i=1;t=1;
进入for(j=1;j<=i;j++)中:
j=1;(满足j<=i)
t=t*j;(注:t=1*1=1)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;不满足j<=i;
for(j=1;j<=i;j++)循环结束
执行sum=sum+t;(注:sum=0+1*1=1*1)
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=2;满足i<=n;
2.再次进入for(i=1;i<=n;i++)循环:
i=2;t=1;
进入for(j=1;j<=i;j++)中:
j=1;(满足j<=i)
t=t*j;(注:t=1*1=1)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;满足j<=i;
t=t*j;(注:t=1*1*2=1*2;)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;不满足j<=i;
for(j=1;j<=i;j++)循环结束
执行sum=sum+t;(注:sum=1*1+1*2即sum=1!+2!)
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=2;满足i<=n;
3.再一次进入for(i=1;i<=n;i++)循环:
i=3;t=1;
进入for(j=1;j<=i;j++)中:
......
如上循环下去,直到
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=6;不满足i<=n;
for(i=1;i<=n;i++)循环结束;

后话:运行情况可通过调试,一步一步的走,看的清楚,希望对你有帮助(求采纳)

解决方案二:
就是先执行外面的,每执行一次,就执行里面的for语句,直到里面的for语句执行完毕,再执行外面的for语句下一次

解决方案三:
你可以单步调试下,看得更清楚
这段代码会对于每个外侧的循环,都执行一次内侧的循环。

解决方案四:
好比让你不用计算机算1!+2!+3!+...+n!你怎么算?
对于每个项,你都要反复做乘法,做完乘法,还要把它们加起来。就是这样

解决方案五:
很正常,就是两重循环,这个代码是计算
1!+2!+3!+...+n!

解决方案六:
可以看看c语言的书,这种问题书上都有讲的

解决方案七:
两层循环,就像一个二维数组,或者理解为表格,从第一行开始,遍历,每一行又要遍历其中的每一列,遍历完这行的列,在到下一行,继续上面的过程

时间: 2024-10-01 08:50:13

for语句的镶嵌是怎么回事?的相关文章

关于jdbc中插入和更新的问题

问题描述 关于jdbc中插入和更新的问题 我用的oracle用jdbc进行相关操作,可是,只有插入语句能执行,不能执行更新和删除语句,这是怎么回事呢? 解决方案 不能执行更新和删除语句,检查下代码有问题吗?运行时有没有异常信息呢?如果你用的是纯JDBC操作的话,问题就可能出在代码上,把代码的异常分支打印堆栈日子,检查更新删除操作有没有提交事务.事出必有因,仔细找找呗. 解决方案二: 那就是你的sq语句,出现问题了,和JDBC没有关系,既然你保存能进去,那就证明数据库连接成功,在好好检查一下. 解

php5-新手提问:php中数据库查询语句错误$mysqli-&amp;amp;gt;query()有错怎么回事?

问题描述 新手提问:php中数据库查询语句错误$mysqli->query()有错怎么回事? 问的东西在这 解决方案 sql语句直接数据库中查询有没有问题. 一般是sql语法错误 解决方案二: 能帮我看看吗?我找不出sql语法错误 解决方案三: 你的SQL语句连接的时候注意空格,检查一下where和and这两处前面有没有空格. 另外最后用参数化查询,既可以防止注入攻击,也更直观,还提高效率. 解决方案四: 你的SQL语句连接的时候注意空格,检查一下where和and这两处前面有没有空格. 另外最

oracle插入语句总提示缺少豆号 给看哈怎么回事

问题描述 "insertintouserinfovalues(gai_web.nextval,'godddff','godlove','','','1990-2-120:00:00',0,'2011-12-1317:10:46','asdf@125.com',0,0,0,'2011-12-1317:10:46','127.0.0.1',1" 解决方案 解决方案二:少)最后没有括死解决方案三:时间类型的还要to_date('2011-12-1317:10:46','yyyy-mm-ddh

所谓PHP分页也就这么回事

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数: 每页多少条记录($PageSize)? 当前是第几页($CurrentPageID)? 现在只要再给我一个结果集,我就可以显示某段特定的结果出来. 至于其他的参数,比如:上一页($PReviousPageID).下一页($NextPageID).总页数($numPages)等等,都可以根据前边这几个东西得到. 以MySQL数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from

oracle中怎么确定性能差的SQL语句

前者很容易定位.所有的操作系统都可以让我们查看 CPU 密集型任务.这些任务可以追溯到一个特定用户,一个特定应用程序模块. CPU 密集型模块一般都是由较差的代码和/或结构造成,而不是性能差的 SQL.一旦确定模块,你必须试图使之更有效率.一个可能的解决方案是将把某些处理移除程序,让数据库处理(高明点的 SQL,存储对象,内联函数,数组处理等). 第二个是 I/O 密集型的 SQL 语句.这些语句会导致大量的数据库 I/O(全表扫描,排序,更新等),并以很高代价运行几个小时.从 Oracle 7

系统提示此windows副本不是正版是怎么回事

  系统提示此windows副本不是正版是怎么回事? 在数字信号处理的理论中,人们把能加工.变换数字信号的实体称作系统.由于处理数字信号的系统是在指定的时刻或时序对信号进行加工运算,所以这种系统被看作是离散时间的. 下面,我们就来看看系统故障解决方法. 1.下载一个win7破解器,下载下来以后,打开该软件,你会看到一个cmd窗口,我们输入数字1,然后按下回车键就可以进行破解. 界面弹出一条语句,继续等待-- 看到这个提示消息的时候说明激活工作已经完成,重启电脑看看是否变成正版系统了,如果仍然有盗

hql-关于Hql语句,这条语句为什么查不出数据

问题描述 关于Hql语句,这条语句为什么查不出数据 hql = "from A a where a.timeDate <= "+time+" and a.name not in (select b.name from B b)"; super.findTopByHql(hql, 20); 这条语句有没有问题啊,为什么查不到数据 解决方案 检查下日期有没有引号,是否合法 最好是使用参数 hql = "from A a where a.timeDate

linux-Linux中awk工具关于if语句的问题

问题描述 Linux中awk工具关于if语句的问题 刚开始看awk,看到if语句,于是自己写了一个很简单的测试 awk ' {if(1>0){printf "helloworld "}} 然后我发现,敲完这个命令就一直没有输出,类似于进入到死循环的命令那种感觉...求大神指点是怎么回事. 解决方案 你缺少个输入文件,比如: echo "abc" | awk ' {if(1>0){printf "helloworld "}}' 如果你又

查询语句-mysql 查询出错! 是权限的问题吗?

问题描述 mysql 查询出错! 是权限的问题吗? 报错如下: 查询不了当前使用的数据库, 也查询不了当前操作数据库的版本, 可以查询当前用户,当前时间, 这是权限问题吗?请大神指教! 并且在增加了一个用户后却删不了, 该怎么办? 最后这个ERROR 1064(4200)与 1054(42S22) 的报错又是怎么回事? 解决方案 当前使用的数据库 show databases 数据库的版本 select version();或select @@version 解决方案二: 暴汗!去百度搜索,关键