我输出它就只有0,还没学函数,不知道哪错了,写了一个多小时,循环感觉都是对的,但是还想问一下怎么把所有素数排序输出
for(int t = 2;t<a[i];t++)
11行还要加上一个sum=0才行
好吧,判断素数处理都不对
#include <iostream>
using namespace std;
int main()
{
int a[20],b[20];
int n,i,j,k=0,sum;
cin>>n;
for(i=0;i<n;i++)
{
sum = 0;
cin>>a[i];
if(a[i]<2)
continue;
for(j=2;j<a[i];j++)
if(a[i]%j==0)
break;
if(j==a[i])
{
sum += a[i];
b[k++] = a[i];
}
cout<<sum<<endl;
for(i=0;i<k-1;i++)
for(j=0;j<k-i-1;j++)
{
if(b[j]< b[j+1])
{
int t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}
for(i=0;i<k;i++)
cout<<b[i]<<" ";
}
在写代码之前,你首先要学会读代码
你自己读读自己写的代码,看它到底什么功能先
然后跟题目比较一下,哪里一样了
题目要求你排序,你排序的代码在哪呢
还有,sum是质数和,你好歹先判断一个数到底是不是质数再求和啊,你循环里随便除一下除不开就直接加到sum上去了,然后循环没结束就直接在循环里输出了?
你这代码推翻了重来吧,没有修改的价值
做题之前先审题,没审题就做还觉得自己循环的没问题,也不知道你哪来的自信