关于c语言循环嵌套的问题

完全数是其各因子之和正好等于本身的数,如6=1+2+3,28=1+2+4+7+14,所以6,8都是完全数,请编程找出2-20000内的所有完全数.输入整数n,输出第n个完全平方数。
第一种:

  #include <stdio.h>   
void main()   
{
    int i,n,s=0,k=0;
    scanf("%d",&n);
    for(i=2;i<=20000;i++,s=0)
    {
        for(int j=1;j<i;j++)
        {
            if(i%j==0)
                s+=j;
            if(i==s)
                k++;
        }
        if(k==n) {printf("%d\n",i);
        break;
        }
    }   
}

第二种:

#include <stdio.h>   
void main()   
{
    int i,n,s=0,k=0;
    scanf("%d",&n);
    for(i=2;i<=20000;i++,s=0)
    {
        for(int j=1;j<i;j++)
        {
            if(i%j==0)
                s+=j;

        }
                if(i==s)
                k++;
        if(k==n) {printf("%d\n",i);
        break;
        }
    }   
}  

这两个的区别就是if(i==s) k++;第一个中是在内循环,第二个是在外循环。但我觉得这两种应该都可以因为第一个是内循环每循环一次就进行判断i是否等于s,直到最后一次判断是否相等、但是第一种输出不出来结果,,请问为啥

2个回答

因为s在程序运行中是逐渐增加的,如果最终的s是比i大,在程序一,一旦出现s==i的情况,k就加1,k因此就失去了正确计数的作用

方程一中的错误:
假设一个数有5个因子,如果前2个因子相加就等于该数,k就会加1,这是不对的。还有因子没有加。
所以方程二是对的,把所有的因子都加到s后再判断。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言关于循环嵌套的!!!!
编写一个程序,创建两个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素的值。程序把第二个数组的元素设置为第一个数组元素的累积和。例如,第二个数组的第4个元素应该等于第一个数组的前4个元素的和,第二个数组的第5个元素应该等于第一个数组的前5个元素的和(使用嵌套循环可以做到这一点)。最后,使用一个循环来显示两个数组中的内容,第一个数组在一行中显示,而第二个数组中的每个元素在第一个数组的对应元素之下进行显示。rnrn[color=#FF0000]要求:1.设置第二个数组时使用循环的嵌套!!!rn 2.用for循环解决问题!!!!!!!rn 3.用c语言解决!!![code=C/C++][/code] rn[/color]rnrn下面这是我写的,是个错的!!!我自己都搞晕了。尽量帮忙修改修改吧!!!谢谢!!!rnrnrnrn//是个错的 没写完!!!!!!!!!!!!!!!!!!!!!rnrnrn#includernint main(void)rnrn double cha[8];rn double chb[8];rn double value;rn int i,j;rn printf("input the 1st array:\n");rn for(i=0;i<8;i++)rn scanf("%ld",&cha[i]);rn for(i=0;i<8;i++)rn rn for(j=1,chb[0]=cha[0],value=cha[1]+cha[0];j
C语言 循环嵌套
注意两点: (1)循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。循环嵌套的概念,对所有高级语言都是一样的。 (2)for语句和while语句允许嵌套,do-while语句也不例外。 [案例] 打印一个循环矩阵。 main() { int i=0,j=0; int count=0; for(i=1;i&amp;lt;=10;i++) { j=i; count=0; do { printf(...
C语言 乘法口诀表 循环嵌套
打印乘法口诀表 算法:逐行输出:(输出第1行/第2行/第3行。。。第9行)
C语言第十四篇:循环嵌套
视情况采取最佳策略:(1)、没有迭代关系的问题(2)、可以找出迭代关系的问题
关于for循环嵌套问题~急
Private Sub Command1_Click()rnFor i=1 To 4rnx=4rnFor j =1 To 3rnx=3rnFor k=1 To 2rnx=x+6rnNext krnNext jrnNext irnPrint xrnEnd Subrn程序运行后,单击命令按钮,输出结果是 rn请给我个
关于循环嵌套的问题
for i=1 to 25rnselect case irncase 1rn....rncase 2rn.....rncase 25rnend selectrnnext i rn我有25个数据采集模块,想实现逐个采集数据.一直循环下去.rn我这个循环语句有点问题rn并不能逐个采集数据.请问该如何修改呢?
关于for循环嵌套的问题
我是一名c语言初学者,在一本书上看见关于for循环嵌套的一篇代码,但是其中的语句有些问题不能编译,请大家帮我改进下,谢谢!rn#include rnrnint main(void)rnrn long sum = 1L; rn int j = 1; rn int count = 0; rnrn /* Prompt for, and read the input count */rn printf("\nEnter the number of integers you want to sum: ");rn scanf(" %d", &count);rnrn for(int i = 1 ; i <= count ; i++)rn rn sum = 1L; rn j=1; rn printf("\n1");rnrn /* Calculate sum of integers from 1 to i */rn while(j < i)rn rn sum += ++j;rn printf("+%d", j); rn rn printf(" = %ld\n", sum); rn rn return 0;rnrn书上面的程序输出如下:rnEnter the number of integers you want to sum:5rnrn1=1rn1+2=3rn1+2+3=6rn1+2+3+4=10rn1+2+3+4+5=15
【求救】关于循环嵌套的问题
rnrnrnrn[color=#FF0000][size=16px]我现在遇到的问题是当不管pmember_sheng等于什么 ,document.modicompany.danwei.value输出的值都是“海南”,我的else if循环没有错啊~~!!请各位高手帮忙看下~!!!万分感谢[/size][/color]
关于while循环嵌套的问题?
declare @i int,@j intrnset @i = 1rnset @j = 1rnwhile(@j<=10)rnBEGINrn while(@i<=10)rn BEGINrn //代码rn set @i=@i+1 rn ENDrn set @j=@j+1rnENDrnrnrn为什么只有里面的一层循环执行了,外面的没任何作用?
c语言常见循环嵌套程序(初级)
一,素数的求解#include &amp;lt;stdio.h&amp;gt;int main(){int i,m;scanf(&quot;%d&quot;,&amp;amp;m);for(i=2;i&amp;lt;m;i++){if(m%i==0)break;}if(i==m)printf(&quot;它是素数\n&quot;);elseprintf(&quot;它不是素数\n&quot;);return 0;}二,正三角形 “*”的输出(此处举例前十行的表示程序)#include &amp;...
C语言基础知识之(七):循环嵌套的用途和规律
循环嵌套: 含义:一个循环体内完整的包含另一个循环 用途: 1、打印行列数字 例:打印四行四列的数字 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 分析: a、需要使用两个循环。一个循环控制行,一个循环控制列。 b、外层循环控制行,内层循环控制列 for (int i = 1; i    for (int j = 1; j       pri
C语言实例循环嵌套数组指针函数结构体
C语言的简单基本实例,包括循环、嵌套、数组、指针、函数、结构体等内容。
C语言的for循环嵌套是什么运行规则?
C语言的for循环嵌套是什么运行规则? 最开始进入的是第一层for循环,在进入第二层for循环,一直到最后一层for循环执行完,再返回上一层for循环一次,进入下一层循环,一直到所有循环结束。(从内到外) ​​​​ ...
关于 循环嵌套!
一直用VFP主窗口作程序,现在尝试使用表单(发现表单确实方便实用强大),现在遇到原来VFP的程序循环嵌套问题,并请各位大侠个中处理有没有问题:rnrn :rn :(这是表单初始化的内容,放在LOAD 里,包括capion的重新定义,表的初始化等)rn :rn :rn第一个循环:DO WHIL .T.rn :rn : (这是常量的定义,API 的定义等内容,我想放在INIT 里,不知对不对?)rn :rn : rn :rnrn第二个循环:DO WHIL .T. (这个循环已被timer1 时钟代替了)rn :rn :rn : (程序主要内容)rn :rn EXIT (退出前会保存第二个循环所做的东西,并清除第一个循环到第二个循环之间所做的定义内容)rnrn第二个结束: ENDDOrn : rn : (这是跳出第二循环亦即是时钟循环后要做的工作,然后重新开始第一个循环)rn :rn第一个结束: ENDDO rnrn现在是第一个循环应如何处理,第一个到第二个循环之间的定义工作因放在那里,跳出第一个循环后,接着做的那些工作,又应该放在那里,谢谢各位大侠帮助!(还有是如何跳出timer1 的循环?)rnrnrnrn
C 【for循环嵌套 图形规律 问题】
/* 外循环控制行数 内循环控制列数 输出 类正三角(尖尖朝上):修改内循环的 条件 表达式 输出 类倒三角(尖尖朝下):修改内循环的 初始化 表达式 */ #include #include void test1(); void test2(); int main(int argc, const char * argv[]) { // test1(); /
循环嵌套02(C)
编写程序找出所有三位数中的包含数字 3 的所有素数,并输出到屏幕上,要求每行输出 8 个素数,每个素数占 6 列。   /** *学号: *作业: *作者: *日期: */ #include&amp;lt;stdio.h&amp;gt; int main() {     int p;                                                         //将p定义为...
循环嵌套、穷举法01(C)
现有 1 元、 2 元和 5 元的钱币若干,如果要用这些钱币去购买售价 50 元的商品,请问有多少种不同的组合方式。   /** *学号: *作业:E20 *作者: *日期:2015.11.4 */ #include&amp;lt;stdio.h&amp;gt; int main() {     int count,a,b,p;       int one,two,five;     int mun;    ...
循环嵌套、穷举法02(C)
公园前 5 世纪,我国数学家张丘建在《算经》中提出百钱百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?   /** *学号: *作业:E23 *作者: *日期:2015.11.4 */ #include&amp;lt;stdio.h&amp;gt; int main() {     int a,b,c;                                    ...
两层c:forEach循环嵌套
题目要求:spring MVC的返回结果为:一个类中嵌套一个list,在前台如何通过两层c:forEach来控制?{msg=[Field [id=1, name=经济学, plist=[Profession [id=1, name=理论经济学], Profession [id=2, name=应用经济学]]]解答过程: ${flist.name } ${plist.na
?关于C++中的循环嵌套问题
我是刚学C++的,在看一些程序时对其中的循环嵌套,不了解,麻烦大侠们帮不弟一下,谢谢啦!
循环嵌套01(C)
从键盘输入若干个位数不确定的正整数,请编写程序统计这些整数中数字 0 和 9 出现的次数。当输入一个负数时,则结束输入。   /** *学号: *作业:E25 *作者: *日期:2015.11.4 */ #include&amp;lt;stdio.h&amp;gt; int main() {     int i,p;                                                ...
for 循环嵌套问题
[code=csharp]rn if (dstw.Tables[0].Rows.Count > 0)rn rn for (int j = 0; j < dstw.Tables[0].Rows.Count; j++)rn rn listtw.Add("insert into tp_img (uid,uname,keyword,type,text,classid,classname,pic,showpic,info,url,createtime,uptatetime,click,token,title,usort) values ('" + Uid + "','" + Uname + "','" + dstw.Tables[0].Rows[j][2] + "','" + dstw.Tables[0].Rows[j][3] + "','" + dstw.Tables[0].Rows[j][4] + "','" + dstw.Tables[0].Rows[j][5] + "','" + dstw.Tables[0].Rows[j][6] + "','" + dstw.Tables[0].Rows[j][7] + "','" + dstw.Tables[0].Rows[j][8] + "','" + dstw.Tables[0].Rows[j][9] + "','" + dstw.Tables[0].Rows[j][10] + "','" + dstw.Tables[0].Rows[j][11] + "','" + dstw.Tables[0].Rows[j][12] + "','" + dstw.Tables[0].Rows[j][13] + "','" + Token + "','" + dstw.Tables[0].Rows[j][15] + "','" + dstw.Tables[0].Rows[j][16] + "')");rn rn ///循环插入rn DbHelperMySQL.ExecuteSqlTran(listtw);rnrn rn #region 完成后把原来对应的分类id更新过来关联文章的类目id[ ]rn string Strsqltwfl = "select id,name from tp_classify where token='" + Token + "'";rn DataSet dstwfl = DbHelperMySQL.Query(Strsqltwfl);rn List listtwfl = new List();rn if (dstwfl.Tables[0].Rows.Count > 0)rn rn for (int k = 0; k < dstwfl.Tables[0].Rows.Count; k++)rn rn listtwfl.Add("update tp_img set classid='" + dstwfl.Tables[0].Rows[k][0] + "' where classname='" + dstwfl.Tables[0].Rows[k][1] + "'and token ='" + Token + "' ");rn rn rn ///循环插入rn DbHelperMySQL.ExecuteSqlTran(listtwfl);rn #endregionrnrn ///把成功的的更新下用于第二次循环rn #region 把成功的的更新下用于第二次循环 [ ]rn List listUp = new List();rn listUp.Add("update tp_wxuser set tongji='1' where uid='" + Uid + "'");rn //执行rn DbHelperMySQL.ExecuteSqlTran(listUp);rn //把原有的dataset 重新赋值rn string NStrsqlwxyh = "select uid,wxname,token from tp_wxuser where wxname like '%事业中心%' and tongji <>'1'";rn dswxyh = DbHelperMySQL.Query(NStrsqlwxyh);rn //啊listwxyh清空 为了保持不删除其它的rn listwxyh.Clear();rn i = 0;//循环后依然从第一个开始,不然会跳行rn #endregionrn rn[/code]rnrn语句没有问题,但是这里不知道为什么获取的总是第一个记录。rn[code=csharp]rnrnfor (int j = 0; j < dstw.Tables[0].Rows.Count; j++)rn rn listtw.Add("insert into tp_img (uid,uname,keyword,type,text,classid,classname,pic,showpic,info,url,createtime,uptatetime,click,token,title,usort) values ('" + Uid + "','" + Uname + "','" + dstw.Tables[0].Rows[j][2] + "','" + dstw.Tables[0].Rows[j][3] + "','" + dstw.Tables[0].Rows[j][4] + "','" + dstw.Tables[0].Rows[j][5] + "','" + dstw.Tables[0].Rows[j][6] + "','" + dstw.Tables[0].Rows[j][7] + "','" + dstw.Tables[0].Rows[j][8] + "','" + dstw.Tables[0].Rows[j][9] + "','" + dstw.Tables[0].Rows[j][10] + "','" + dstw.Tables[0].Rows[j][11] + "','" + dstw.Tables[0].Rows[j][12] + "','" + dstw.Tables[0].Rows[j][13] + "','" + Token + "','" + dstw.Tables[0].Rows[j][15] + "','" + dstw.Tables[0].Rows[j][16] + "')");rn rn ///循环插入rn DbHelperMySQL.ExecuteSqlTran(listtw);rnrn[/code]rn
关于C语言的问题
怎样使得一个编码上界很大,下界很小(可以为负数),在不用宏定义的情况下完成?希望高手来解答!
关于C语言的问题。。。
到底怎么样才能学好C语言呀,哎。有时候花费了很长时间都没写出一道题。
关于C语言的问题。
#includernint main()rn int i=01234, j=8;rn long p=-1l;rn printf("%o %04o %4lo",i,j,p);rn return 0; rn rn为什么输出的最后一个是37777777777?
C语言关于和的问题
elemtype& a1;rnelemtype *a2;rnelemtype a3;rnrnfun1(elemtype& a);rnfun2(elemtype *a);rnfun3(elemtype a);rnrn请问a1,a2,a3分别能做为fun1,fun2,fun3中哪几个函数的参数?
关于c语言的问题。
我现在有一个在c++下编译后的.obj文件,想在c的工程中使用,但是编译连接的时候说是有问题,这是不是由于c不能兼容c++引起的?rn如果是这样的话,我怎么才能解决呢?rn
关于C语言%的问题
#include rnvoid main()rnrn static int x,n[9];rn printf("input No.:");rn scanf("%d",&x);rn while(x)rn rn n[x]+=1;rn printf("input No.:");rn scanf("%d",&x);rn rn for(x=1;x<=8;x++)rn rn printf("\tNo.%d=%d",x,n[x]);rn if(x%2==0)rn printf("\n");rn rnrnif(x%2==0) 可以给我解释清楚一点麽 我不理解
关于c语言的问题
大家好!我是一名刚开始学习c语言和数据结构的菜鸟,有个很菜的问题想请高手帮忙!rn请问如何对两个无序的单向链表A、B进行合并呢?望大家帮帮我,谢谢!
循环嵌套问题?
<%rn以下方法似乎进入死循环,但我需要由内循环确定最外循环的起始值。怎么写?rndim i,j as integerrni=0rnfor j=0 to 4 rnfor i= 0 to 9rnif i=3rnresponse.write (" ")rnj=irnresponse.write (i)rnexit forrnend ifrnresponse.write (" ")rnresponse.write (i)rnresponse.write ("--"&j)rnrnnextrnrnrnnextrn%>rnrn
循环嵌套问题。
我想用vb中的treeview控件实现一个循环的嵌套,外循环和内循环都是动态的,外循环是treeview的根节点,内循环是treeview的字节点。可能有两层的、三层的、请问如何实现?rn我再问一句,是不是他的实现于数据库有关。如果有关,那么数据库如何设计比较合适?rn
for 的循环嵌套问题
for(int i=1;i<=n;i++)rn for(int j=1;j<=i;j++)rn for(int k=1;k<=j;k++)rn x++;rn ~~~~rn设划线部分执行的次数为n的函数f(n),则f(n)的表达式是什么?
循环嵌套问题
rn我想用vb中的treeview控件实现一个循环的嵌套,外循环河内循环都不是固定的,外循环是treeview的根节点,内循环是treeview的字节点。请问如何实现?rn
for的循环嵌套问题
#include rnrnint main()rnrn int i =1,j=1;rn for(i=1;i<10;i++)rn rn for(j=1;j
循环嵌套的问题
for(var i=0;i40左右就不在循环了,在这段循环后面alert()什么的都不行,就是说程序卡在这了,好奇怪呀,郁闷,但是ksmzdoc.rows[docArray[j+2]+1].cells[window.frames["clinic_ys"].arrShowfix[i+1]].innerText=window.frames["clinic_ys"].arrShowfix[i+2]会被执行
for循环嵌套问题
如果有两层的for循环嵌套 里层的循环怎么根据外层循环出来的数据取值 rn比如 外层循环出 pnum 有 1 2 3 三个数据 根据 1 可以查出多条数据rn里层循环怎么把 1 当做条件得到相应的数据?rn
for循环嵌套的问题
问题是设计程序使最后输出:rnrn0rn01rn012rn0123rn01234rn0123rn012rn01rn0rnrn要求用for语句嵌套。rnrn谢谢了~~
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法