供参考:
#include <stdio.h>
#define N 1000
int fun(int n)
{
int flg = n, k = 0;
while (flg) //求出位数
{
k++;
flg /= 10;
}
if (k == 3) flg++; //位数为3位数
if (n % 10 + n / 10 % 10 == 5) flg++; //个位+十位刚好等于5
if (n % 3 == 0) flg++; //能够被3整除
return flg;
}
int main()
{
int n, tmp, a[N] = {0}, i = 0;
scanf("%d", &n);
while (n--)
{
scanf("%d", &tmp);
if (fun(tmp) >= 2) a[i++] = tmp;//至少两个条件的数
}
if (i == 0)
printf("no");
else {
for (n = 0, tmp = 0; n < i; n++) {
printf(n == 0 ? "%d" : " %d", a[n]);
tmp += a[n];
}
printf("\n%d %d", i, tmp);
}
return 0;
}
代码如下:
#include<bits/stdc++.h>
using namespace std;
int x[10005];
void search(int q,int i)
{
int a=q/100;
int b=q%100/10;
int c=q%10;
int d=b+c;
int e=q%3;
if(a>0&&a<10) x[i]++;
if(d==5) x[i]++;
if(e==0) x[i]++;
}
int main()
{
int n,k=0,s=0;
int a[10005];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
x[i]=0;
search(a[i],i);
if(x[i]>=2)
{
k++;
s+=a[i];
cout<<a[i]<<" ";
}
}
if(k==0)
{
cout<<"no";
return 0;
}
cout<<endl;
cout<<k<<" "<<s;
return 0;
}
运行结果: