#include<iostream> using namespace std; int main() {int i,j,r; for(r=0,i=2;i<=1000;i++) {for(j=1;j<i;j++) if(!i%j) r=r+j;} if(i==r) cout<<i<<endl; return 0;}
输出二到一千之间的完数 为什么得不到结果
因为循环结束后 i≠r,所以if(i==r) 判断为假,没有执行输出语句,就没有结果了
for(r=0,i=2;i<=1000;i++)另外,如果是想判断i与j的模为0时执行的话,
应该改为
if(!(i%j))求2至1000之间的完数的代码可以参考这里:
请采纳
追问当i==r时 i的值为什么输不出来
追答如果i==r是会输出的,问题在于i≠r,所以没有执行
cout<<i<<endl;可以自己在if(i==r) 这句前面加上
cout<<r<<endl;看看此时的r和i值是多少就能明白了,这也是一种常用的调试技巧
追问为什么 6输不出来呢
追答6输不出来是什么意思?
追问就是 程序在运行的时候 得不到结果 啥都没有
追答已经说过了啊,因为没有执行cout语句,当然啥都没有了啊
好好检查一下你的程序的逻辑和流程
参考一下给你链接的那个程序吧
这里稍微改了一下,供参考
#include<iostream>加注释 做什么
追答注释掉就是不编译不执行啊少年......
要先看看C/C++的语法再开始编程啊.......
我到时候 运行看下
谢谢啊
#include using namespace std;int main(){int i,j,k;for(i=1;i=0;i--){for(k=1;k<=5-i;k++)cout<<""<<endl;for(j=1;j<=2*i-1;j++)cout<<'*';}//for(k=1;k<=5;k++) cout<<""<<endl;return 0;}
我想用星号输出一个九行的菱形 结果得到上面那个
帮我看看
追答#include <iostream>注意编程的格式
追问谢谢
数组指针中的元素可以给指针变量赋值吗
追答应该是指针数组吧
指针数组的元素是指针
指针变量存储的是指针
所以指针数组的元素可以赋给指针变量
在使用指针的时候需要小心一点