【发布时间】:2017-02-19 09:37:47
【问题描述】:
我已经看到了这个问题,但是我在将一些解决方案实现到我自己的代码中时遇到了困难。
正在处理的程序查找数组中的所有素数,并计算查找所有素数所需的时间。但其中一项规定是让程序每行只打印 10 个数字。我尝试了几种不同的方法来让它工作,但没有一个能打印出我需要的方式。这是当前代码:
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
static const int N = 1000;
int main()
{
int i, a[N];
clock_t start = clock();
for (i = 2; i < N; i++) a[i] = i;
for (i = 2; i < N; i++)
if (a[i])
for (int j = i; j*i < N; j++) a[i*j] = 0;
start = clock() - start;
for (i = 2; i < N; i++)
if (a[i]) cout << " " << i;
if ((i = 1) % 10 == 0)
cout << "\n";
printf("\nIt took %d clicks (%f seconds) to find all prime numbers.\n", start, ((float)start) / CLOCKS_PER_SEC);
return 0;
}
我确信这是我自己的一个简单错误,或者我对它的工作原理没有正确的理解。如果有人能对这个主题有所了解,将不胜感激,谢谢。
【问题讨论】:
标签: c++ loops printing integer limit