谁能帮忙解决一个c++小问题 ?
#include<iostream>
using namespace std;
int main(){
int n=0,a,b;
for(int i=100;i<=999;i++){
a=i/100; \\这里的i为什么要除100而不是其他的数, 下面的i也是一样的
b=i%10;
if(a==b){
n++; \\这里的n为什么要++啊?
cout.width(5);
cout<<i;
if(n%5==0) cout<<endl; \\帮忙解释一下这里是什么意思啊?
return 0;
}
本人 刚学C++有许多问题不懂 , 谢谢大家帮忙解决问题
[解决办法]
#include<iostream>using namespace std;int main(){ int n=0,a,b; for(int i=100;i<=999;i++) { a=i/100; //看楼主的程序是要求百数与个数相等的三位数,这个a是计算出百位是多少 b=i%10; if(a==b) { n++; //这里的n是计算出总共有多少个百倍与个位相等的数。 cout.width(5); cout<<i; if(n%5==0) cout<<endl; //每五个数换行 } } return 0; }
[解决办法]
这是个低效的3位回文算法。
#include<iostream>using namespace std;int main(){ int n=0,a,b; for(int i=100;i<=999;i++) { a=i/100; // a=i的百位值 b=i%10; // b=i的个位值 if(a==b) // 当一个三位数的百位与个位相同,我们就认为这个三位数是个回文数 { n++; // n用来计数,以便控制每行显示的回文数量 cout.width(5); cout<<i; if(n%5==0) cout<<endl; // 每输出5个回文就换行 } } return 0;}
[解决办法]
恢复下,看看有没有分
[解决办法]
这是达到同样效果的另一种写法,效率高很多:
#include<iostream>using namespace std;int main(){ for (int i=1;i<10;++i) for (int j=0;j<100;j+=10) { cout.width(5); cout<<i*100+j+i; if ((j+10)%50==0) cout<<endl; } return 0;}
[解决办法]
直接输出字符的方法:
#include<iostream>using namespace std;int main(){ for (char i='1';i<='9';++i) for (char j='0';j<='9';++j) { cout<<i<<j<<i<<' '; if ((j-'0'+1)%5==0) cout<<endl; } return 0;}
[解决办法]
怎么看有点象倒分的嫌疑。。。。