扶我起来我还能敲几行 2021-04-06 13:01 采纳率: 100%
浏览 38
已采纳

想了大半天也不知道是哪里出了问题,求大佬帮忙解答!

问题:从1到40数字中,含有2、0、1、9这四个数字的数的和是多少?

我的代码:

#include <stdio.h>

int main()
{
	int sum = 0, n, t; 
	for(int i = 1; i <= 40; i++)
	{
		t = i;
		n = 0;
		while(t != 0)
		{
			t %= 10;
			if(t == 2 || t == 0 || t == 1 || t == 9)
			{
				n++;
			}
			t /= 10;
		}
		if(n != 0)
		{
			sum += i;
		}
	} 
	return 0;	
} 

不知道是哪里出了问题,一直得不到正确答案,还请大佬帮忙看看!

  • 写回答

4条回答 默认 最新

  • 爱晚乏客游 2021-04-06 13:17
    关注

    问题出在12和17行,你在12行执行完之后,你的t已经是个位数了,无论怎么样,执行完17行你的t都是0,并没有达到你想要的t是十位数的效果。

    
    int main()
    {
    	int sum = 0, n, m,t;
    	for(int i = 1; i <= 40; i++)
    	{
    		t = i;
    
    		n = 0;
    		while(t != 0)
    		{
    			m =t% 10;
    			if(m == 2 || m == 0 || m == 1 || m == 9)
    			{
    				sum+=i;
    				break;
    			}
    			t =t/ 10;
    		}
    	}
    	printf("%d",sum);
    	return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式