关于循环的一个极小白问题。。

mcopro 2013-01-11 08:18:55
这是一个高三的题目,然后我把它写出来了,不过答案跟正确答案不同
研究一段时间都没搞明白。。。发上来问下。。。

#include <iostream>
#include <cmath>
using namespace std;
#define PI 3.1415926535897932384626433832795

int main(int argc, char *argv[]) {
int i=1;
int s=0;
do{
s += (i * cos(i * PI / 2) + 1);

}while((i++)<2012);

cout<<s<<endl;
return 0;
}


原题

答案为3018
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-01-14
  • 打赏
  • 举报
回复
不要使用 while (条件) 更不要使用 while (组合条件) 要使用 while (1) { if (条件1) break; //... if (条件2) continue; //... if (条件3) return; //... } 因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。 典型如: 下面两段的语义都是当文件未结束时读字符 whlie (!feof(f)) { a=fgetc(f); //... b=fgetc(f);//可能此时已经feof了! //... } 而这样写就没有问题: whlie (1) { a=fgetc(f); if (feof(f)) break; //... b=fgetc(f); if (feof(f)) break; //... } 类似的例子还可以举很多。
FancyMouse 2013-01-13
  • 打赏
  • 举报
回复
2012 - 2 + 4 - 6 + 8 - ... + 2012 = 2012 + 2*503 = 3018
sanhan 2013-01-13
  • 打赏
  • 举报
回复
double 转 int 舍入要控制一下。不然结果可能差1。
Crazy_Number 2013-01-11
  • 打赏
  • 举报
回复
如果是3018的话,1楼正解。
图灵狗 2013-01-11
  • 打赏
  • 举报
回复

#include <iostream>
#include <cmath>
using namespace std;
#define PI 3.1415926535897932384626433832795
 
int main(int argc, char *argv[]) {
    int i=1;
    double s=0;
    do{
        s += (i * cos(i * PI / 2) + 1);
         
    }while((i++)<2012);
     
    cout<<s<<endl;
    return 0;
}
lee_鹿游原 2013-01-11
  • 打赏
  • 举报
回复

#include <stdio.h>  
#include <cmath>
using namespace std;
#define PI 3.1415926535897932384626433832795

int main(int argc, char *argv[]) 
{
	double i=1;
	double s=0;
	do
	{
		s+= (i * cos(i * PI / 2) )+1;
	}
	while((i++)<2012);

	cout<<(double)s<<endl;
	system("pause");
	return 0;
}
Crazy_Number 2013-01-11
  • 打赏
  • 举报
回复
是3018还是30181啊?
mujiok2003 2013-01-11
  • 打赏
  • 举报
回复
改一下:
#include <iostream>
#include <cmath>
using namespace std;
#define PI 3.1415926535897932384626433832795

int main(int argc, char *argv[]) {
	int i=1;
	double s=0;
	do{
		s += (i * cos(i * PI / 2) + 1);
		
	}while((i++)<2012);
	
	cout<<(int)s<<endl;
	return 0;
}

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧