C 计数不';我打印不正确

C 计数不';我打印不正确,c,C,我有以下计划: #include <stdio.h> #include <stdlib.h> int main() { int n, br, j=1, zbroj=0; printf("Ucitati cijeli broj(manji od 1000):\n"); scanf("%d", &n); for(br=1; br<=n; br++) { if(br % 6 == 0)

我有以下计划:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n, br, j=1, zbroj=0;

    printf("Ucitati cijeli broj(manji od 1000):\n");
    scanf("%d", &n);

    for(br=1; br<=n; br++)
    {
        if(br % 6 == 0)
            printf("%d ", br);
        j = br;
        while(j != 0)
        {
            if(j % 6 == 0)
                zbroj++;
            j /= 6;
        }
    }

    printf("\nPerica je zapisao %d cifara\n", zbroj);

    return 0;
}
#包括
#包括
int main()
{
int n,br,j=1,zbroj=0;
printf(“Ucitati cijeli broj(曼吉od 1000):\n”);
scanf(“%d”和“&n”);

对于(br=1;br如果修改了
zbroj
,则值的唯一位置是在循环中:

j = br;
while(j != 0)
{
    if(j % 6 == 0)
        zbroj++;
    j /= 6;
}
这不是计算每个数字中的位数,而是计算每个数字可被6整除到
zbroj
中的次数

要计算位数,可以将循环替换为:

if (br % 6 == 0)
{
    printf("%d ", br);
    j = br;
    while (j != 0)
    {
        zbroj++;
        j /= 10;
    }
}
还请注意,我将
while
循环移动到
if
语句的范围内,以便
zbroj
只计算实际打印出来的数字


为简洁起见,您还可以使用
#include
并使用
(int)log10(j)+1
对匹配的数字进行计数。

调试C程序不需要IDE。您可能想阅读以下内容:“计数”是什么?@Mawg我用代码块写这个,这些变量在我的语言中是很短的单词,是的,我有点习惯用英语写这些单词。嗯,我相信
zbroj
是一个单词,但是
br?和
j`?:-)不管怎样,你使用code::blocks是个好消息。你知道如何使用调试器吗?如果你知道,你可以自己轻松解决这个问题。如果你不知道,请停止编码并学习调试器。你会惊讶于它的帮助有多大。啊,log10部分很酷,哥们,今天学到了一个新东西Thanks@Govind帕尔玛是的,我一直在和伯爵犯同样的错误我一次又一次地明白你的意思,感谢你的提示
log10(j)
j时失败