2017-04-25 35 views
0

を右[C]を数えませんカウンターは+1になります。ポインタが、私はそれはたくさんのように見えます知っているが、それは本当に<br> ない配列から文字が母音であり、それはメイン/サポート対角線上にある場合、それが可能ならばそれはちょうどチェック

問題は、出力がメイン対角線= 31、対角線= 4をサポートしていることです。 問題がどこにあるのか分かりませんが、今これを1時間見てきました。

#include <stdio.h> 
#include <math.h> 
#include <ctype.h> 
#include <string.h> 
#include <stdlib.h> 

void Dijagonala(char znakovi[5][5],int *glav,int *spor) 
{ 
    int i,j; 
for(i=0;i<5;i++){ 
for(j=0;j<5;j++) 
{ 
    if (((znakovi[i][j] == 'a') || (znakovi[i][j] == 'e') || (znakovi[i][j] == 'i') || (znakovi[i][j] == 'o') || (znakovi[i][j] == 'u') || 
    (znakovi[i][j] == 'A') || (znakovi[i][j] == 'E') || (znakovi[i][j] == 'I') || (znakovi[i][j] == 'O') || (znakovi[i][j] == 'U')) 
    && (i==j)) 
    *glav+=*glav+1; 
else if (((znakovi[i][j] == 'a') || (znakovi[i][j] == 'e') || (znakovi[i][j] == 'i') || (znakovi[i][j] == 'o') || (znakovi[i][j] == 'u') || 
    (znakovi[i][j] == 'A') || (znakovi[i][j] == 'E') || (znakovi[i][j] == 'I') || (znakovi[i][j] == 'O') || (znakovi[i][j] == 'U')) 
    && (j+i == 4)) 
    *spor=*spor+1; 

} 
} 
} 
int main() 
{ 
char znakovi[5][5]; 
int gsam=0,ssam=0,i,j,test=5; 
for(i=0;i<5;i++){ 
for(j=0;j<5;j++) 
{scanf("%c",&znakovi[i][j]); 
fflush(stdin); 
}} 
Dijagonala(znakovi,&gsam,&ssam); 
printf("glavna %d \n Sporedna %d",gsam,ssam); 
} 
+0

'* glav + = * glav + 1;'について説明してください。 '(* glav)+ = 1;'になりたいと思うようです。 – Yunnosch

+0

'fflush(stdin);' - [しないでください](https://stackoverflow.com/questions/2979209/using-fflushstdin) – WhozCraig

+0

@Yunnoschそれを修正しました!ありがとう。私はそれを見落としました。 –

答えて

1
*glav+=*glav+1; 

それは

*spor=*spor+1; 

すなわちのための同様の

(*glav)+=1; 

になりたいと思っているように見えます変数をその値と1だけ増やさないでください。
()でさらに寛大になります。

+0

他のコメントは無視しないでください。彼らは良いアドバイスのように聞こえる。 – Yunnosch

関連する問題