所以,一切似乎都运行良好,但程序没有给我正确的答案.我的是142,915,960,832,而应该是142,913,828,922.差异是2,131,910(如果我仍然可以减去纸上的数字哈哈),我不知道我从哪里获得这两百万.谁能帮助我?
#include <stdio.h>
#include <math.h>
#define BELOW 2000000
int isaprime (int num);
int main (void) {
int i;
float sum = 0;
for (i = 2; i < BELOW; i++) {
if (isaprime(i) == 1) {
sum = sum + i;
printf ("\n%d\t%.1f", i, sum);
}
}
getch();
return 0;
}
int isaprime (int num) {
int i;
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
else {
; …
Run Code Online (Sandbox Code Playgroud) 我正在使用如下所示的数据结构:
map<string, set<string>> data;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我使用foreach循环处理地图没有任何问题,但是,现在我需要打印出地图中的数据,如下所示:
KEY: elem1, elem2, elem3
KEY2: elem1, elem2, elem3
Run Code Online (Sandbox Code Playgroud)
由于最后缺少逗号,我不能再使用foreach循环了(我可以吗?).由于我是C++,C++ 11以及它提供的所有乐趣的新手,我很遗憾.我提出了:
for ( auto i : data )
{
cout << i.first << ": ";
for ( size_t i = 0; i < /* size of the set */ - 1; i ++ )
cout << j << ", ";
cout << /* the last element of the set */ << endl;
}
Run Code Online (Sandbox Code Playgroud)
我知道我想要什么,我只是不知道语法和C++参考没有多大帮助.感谢您的回答,同时我将自己浏览C++参考.