C程序编译出错

来源:百度知道 编辑:UC知道 时间:2024/05/14 09:03:10
我的程序实现的功能是求出1-100中所有的整数中出现‘9’的次数,我的程序如下:
#include<stdio.h>
int main(void)
{
int i,shi,ge,sum=0;
for(i=9;i<=99;i++)
{
shi=i/10;
ge=i%10;
if(shi%9==0||ge%9==0)
sum++;
}

printf("%d\n",sum);
}
编译时没有错误,但是结果始终出错,郁闷,请知道的解答解答,正确应该是19,但是结果是27

你的思想没对:
0%9 == 0n你也算了.

正解:
if( shi == 9)
{
++sum;
}
if( ge == 9)
{
++sum;
}

给你说两个地方

1、if(shi%9==0||ge%9==0)

这里判断时shi==0和ge==0时也都成立的,但不包含9

2、根据我对题意的理解,要求的是出现9的次数,就是说99应该算两次,不知道是不是