C ++。帮助缩短这段代码。 [英] C++. help in making this code shorter.
本文介绍了C ++。帮助缩短这段代码。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
喜。有人可以帮我解决代码中的语法问题。我仍然开始学习C ++。
hi. can someone help me with the syntax in my code. im still beginning to learn about C++.
#include<iostream>
#include<math.h>
#define _USE_MATH_DEFINES // for C++
#include <cmath>
using namespace std;
int main(){
int iTerm;
float iSum=0.00,iDenom=1.00,iError;
float iPi = M_PI;
cout<<"|Term|Value|Error|" <<endl;
for(iTerm=1;iTerm<=100;iTerm++){
if(iTerm%2==1){
iSum=iSum + (4/iDenom);
cout<<"|"<<iTerm << "|"<<iSum;
iError = iSum - iPi;
cout<<"|"<< iError <<endl;
cout<<"\n";
iDenom = iDenom + 2;
}
else{
iSum =iSum - (4/iDenom);
cout<<"|"<<iTerm<<"|"<<iSum;
iError = iSum - iPi;
cout<<"|"<< iError <<endl;
cout<<"\n";
iDenom = iDenom + 2;
}
}
}
有人可以帮我缩短if和else里面的语法。在C中有一种方法可以缩短它。
额外帮助:
如何将iError打印成2位小数?在C中它的%.2f
谢谢你
can someone help me shorten the the syntax inside if and else. in C there is a way to shorten this.
additional help:
how can I make iError into printing 2 decimal places? in C its %.2f
thank you
推荐答案
如果你看看你的代码
那么你会发现你的if / else语句的两个分支
大致相同。
唯一的区别是iSum = iSum + (4 / iDenom); vs.iSum = iSum - (4 / iDenom);
所以你的代码应如下所示:
If you have a look at your code
then you will see that both branches of your if/else statement
contain mostly the same.
The only difference is "iSum=iSum + (4/iDenom);" vs. "iSum =iSum - (4/iDenom);"
So your code should look like this:
#include<iostream>
#include<math.h>
#define _USE_MATH_DEFINES // for C++
#include <cmath>
using namespace std;
int main(){
int iTerm;
float iSum = 0.00, iDenom = 1.00, iError;
float iPi = M_PI;
cout << "|Term|Value|Error|" << endl;
for (iTerm = 1; iTerm <= 100; iTerm++){
if (iTerm % 2 == 1){
iSum = iSum + (4 / iDenom);
}
else{
iSum = iSum - (4 / iDenom);
}
cout << "|" << iTerm << "|" << iSum;
iError = iSum - iPi;
cout << "|" << iError << endl;
cout << "\n";
iDenom = iDenom + 2;
}
}
您应该始终遵循DRY原则:
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself [ ^ ]
对于字符串格式,请查看:
http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm [ ^ ]
for(iTerm=1;iTerm<=100;iTerm++)
{
iSum += (8*(iTerm % 2)-4)/iDenom;
cout<<"|"<<iTerm << "|"<<iSum;
iError = iSum - iPi;
cout<<"|"<< iError << endl << endl;
iDenom = iDenom + 2;
}
尝试
Try
for (iTerm = 1; iTerm <= 100; iTerm++){
if (iTerm % 2)
iSum += (4 / iDenom);
else
iSum -= (4 / iDenom);
cout << "|" << iTerm << "|" << iSum;
iError = iSum - iPi;
cout << "|" << iError << endl;
cout << "\n";
iDenom = iDenom + 2;
}
这篇关于C ++。帮助缩短这段代码。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文