扶我起来我还能敲几行 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 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵
  • ¥15 cfx离心泵非稳态计算