#include
using namespace std;
int isprime(int a);
int main()
{
int i, a[100], b[100], k = 10;
for (i = 0;; i++)
{
cout << "输入数";
cin >> a[i];
if (a[i] == 1)
{
i--;
continue;
}
if (a[i] == 0)
{
break;
}
if (isprime(a[i]) == 1)
{
b[k] = a[i];
k++;
}
cout << "是素数的是" << " " << a[i];
}
}
int isprime(int a)
{
for (int i = 2; i < a; i++)
{
if (a % i == 0)
return 0;
}
return 1;
}
你是要输出所有输入数中的素数吧。代码修改如下:
#include <iostream>
using namespace std;
int isprime(int a);
int main()
{
int i, a[100], b[100], k = 0;
for (i = 0;; i++)
{
cout << "输入数";
cin >> a[i];
if (a[i] == 1)
{
i--;
continue;
}
if (a[i] == 0)
{
break;
}
if (isprime(a[i]) == 1)
{
b[k] = a[i];
k++;
}
}
cout << "是素数的是 ";
for (i=0;i<k;i++)
{
if(i<k-1)
cout << b[i]<<" ";
else
cout << b[i] ;
}
}
int isprime(int a)
{
if(a<2) return 0;
for (int i = 2; i < a; i++)
{
if (a % i == 0)
return 0;
}
return 1;
}
为什么k要从10开始呢,不应该是0吗?
还有数组b的用处是什么?
cout << "是素数的是" << " " << a[i];
这句应该写到上面的if (isprime(a[i]) == 1)代码块里 。b数组好像没有作用啊,而且k默认为10,why?