2014-01-08 82 views
2

我需要一些幫助,似乎無法找到問題,我的程序應該只需要八進制數字,然後計算4的數量和打印,但4的計數器不起作用。C - 計數器不工作

#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; 
} 
+1

舉一個你正在提供的輸入樣本,以及你得到的輸出。 –

+6

你應該永遠不要使用get。您不能指定讀入的最大字符數,並且可能會發生緩衝區溢出。 –

+3

'printf' 2'%d's,但只給一個值? – herohuyongtao

回答

3

這個okt[i] == 4應該是okt[i] == '4'

1

由於您在比較char,請在4附近加上單引號。

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

在下面的語句中還有兩個%d s期望兩個int值。所以你的第二個%d將打印0

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