用C语言编写一段程序,计算并输出200-600中的数字要既能被7整除,又包含3的所有数字之和

 我来答
风雷九州
2014-11-13 · TA获得超过3025个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:411万
展开全部

代码如下,请参考。仅供一点思路,其实还有其他方法,也推荐楼主碰上这种问题自己多思考一下,不要一上来就问。

    int i;
    int hundred, ten, one;
    int sum = 0;

    for(i = 200; i <= 600; i++)
    {
        /* 能够被7整除 */
        if(i % 7 == 0)
        {
            /* 判断是否包含3 */
            /* 思路:整百的数目可以转化成 a * 100 + b * 10 + c的格式,其中a b c中有一个是3,则这个数里面包含3 */
            hundred = i / 100;
            ten     = (i - hundred * 100) / 10;
            one     = i - hundred * 100 - ten * 10;

            /* 上面也可以优化一下,只要任何一个是3,就不再往下计算了 */
            if((hundred == 3) || (ten == 3) || (one == 3))
            {
                sum += i;
            }
        }
    }

    printf("\n%d\n", sum);
追问
谢谢,本人没学过C++,是替别人问的
追答
不客气
夜礼服假面MP
推荐于2016-07-01 · TA获得超过3437个赞
知道大有可为答主
回答量:1034
采纳率:77%
帮助的人:343万
展开全部
void mian()
{
   int i,tmp,sum;
   sum = 0;
   for(i= 200; i <=600; i++)
   {
      if(i%7 == 0)
      {
        tmp = i;
        while(tmp != 0)
        {
           if(tmp %10== 3)
           {
              sum = sum+i;
              break;
           }
           tmp = tmp/10;
        }
      }
   }
   
   printf("sum =%d",sum);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-11-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6192万
展开全部
#include <stdio.h>
int has3( int n )
{
while( n )
{
if ( n % 10 == 3 )
return 1;
n/=10 ;
}
return 0;
}
int main(void)
{
    int i,sum=0;

for( i=200;i<=600;i++ )
{
if ( i%7==0 && has3( i ) )
{
sum += i ;
}
}
printf("%d\n", sum );

return 0;
}
追问
谢谢!
追答
不客气
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happy3只熊
2014-11-13 · TA获得超过154个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:109万
展开全部
#include <stdio.h>
int is7chu(int m );
int ishave3(int m);
int main()
{
int num = 0;
int sum = 0;
for(num =200; num <=700; num++ )
{
if ( is7chu(num) && ishave3(num) )
{
printf("%d \n",num);
sum += num;

}


}

printf("所有数的和为%d \n",sum);
return 0;
}

int is7chu(int m )
{
if (m%7 == 0)
return 1;
else
return 0;
}

int ishave3(int m)
{
int bai,shi,ge;
bai = m % 100;
ge = m % 10;
shi = (m-100*bai-ge)/10;
if (bai == 3 || ge == 3 || shi == 3)
return 1;
else 
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式