关于c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:51:56
【敲七】

Description

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)

Input

一个整数N。(N不大于30000)

Output

统计出不大于N的与7有关的数字的个数。如20以内与7有关的数为7、14、17共3个。

Sample Input

20

Sample Output

3
我的程序是
#include<iostream>
using namespace std;
int main()
{
int i,n,sum1=0,sum2=0,sum;
int f(int x);
cin>>n;
for(i=1;i<=n;i++){
if(i%7==0)
sum1++;
if(f(i)==1)
sum2++;
}
sum=sum1+sum2;
for(i=1;i<=n;i++)
{
if(i%7==0&&f(i)==1)
sum--;
}
cout<<sum<<endl;
return 0;
}
int f(int x ){
int m;
if(x%10==7)
return 1;
else
{
m=x/10;
f(m);

if(m==0)
return 0;}

}为什么不能运行?谁能帮我改改

能运行就怪了, 不是我打击你,整个程序都乱七八糟的,根本看不明白你要怎么做,怎么给你改啊,至少把括号写明白啊!!!!!!

#include<iostream>
using namespace std;

int f(int x);

int main()
{
int i,n;
cin>>n;

for(i=1; i <= n; i++)
{
if(i % 7==0)
{
cout<<i<<endl;
continue;
}

if(f(i)==1)
{
cout<<i<<endl;
continue;
}
}
return 0;
}

int f( int x )
{
int m, n;
m = x;
while (m)
{
n = m % 10;
if ( n && n % 7 == 0) { return 1;}
m = m / 10;
}
return 0;
}

试试我这个,测试过了,可行
#include <iostream.h>
#include <iomanip.h>
void main()
{
int a,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
cout<<"请输入一个不大于30000的整数:"<<endl;
cin>>a;
cout<<"其中7的倍数和包含7的数字有:"<<endl;
for (int i=1;i