【问题标题】:C - Counter not workingC - 计数器不工作
【发布时间】:2014-01-08 08:55:01
【问题描述】:

我需要一些帮助,似乎找不到问题所在,我的程序应该只取八进制数字,然后计算 4 的个数并打印出来,但是 4 的计数器不起作用。

#include <stdio.h>
#include <string.h>

int main (void) {
    char okt[6];
    int i, broj, brojac = 0;
    gets(okt);
    broj = strlen(okt);
    for (i = 0; i < broj; i++) {
        if (okt[i]>'7' || okt[i]<'0') 
            printf("Ucitani niz nije pravilno zadan ");
        else 
            if (okt[i] == 4) 
                brojac++;
    }

    printf("Znamenka 4 se pojavljuje %d puta %d", brojac);
    return 0;
}

【问题讨论】:

  • 给出你提​​供的输入样本和你得到的输出。
  • 你应该永远使用gets。您无法指定读取的最大字符数,并且可能会导致缓冲区溢出。
  • printf 2 %ds 但只给出一个值?

标签: c string counter


【解决方案1】:

这个okt[i] == 4应该是okt[i] == '4'吗?

【讨论】:

    【解决方案2】:

    当您比较 char 时,请在 4 周围加上单引号。

    else if (okt[i] == '4') brojac++;
    

    下面的语句中还有两个 %ds 需要两个 int 值。所以你的第二个%d 将打印0

    printf("Znamenka 4 se pojavljuje %d puta %d", brojac); <-- Expecting two integers
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多