0

入力を読み取って、すべての入力小文字をグラフィカル形式で印刷しようとしています。それを読み取って、各文字が繰り返される回数を追跡できますが、グラフィカルな方法で印刷することはできません。助けてください私から。これが私のコードです

#include <stdio.h>
#include <ctype.h>
int print_fun(int);
int main()  {
int ch = 0, i = 0;
int char_count[26] = {0};
printf("\nNOTE:PRESS * TO EXIT\n");
while((ch = getchar()) != '*')    {
    if(islower(ch))
        char_count[ch - 'a']++;
}
printf("\n");
for(i = 0; i < 26; i++)
    //printf("%c:%d\n",'a'+ i, char_count[i]);
    //printf("%c:\n", 'a'+ i, print_star(char_count[i]));
    printf("%c:\n",print_star(char_count[i]),'a'+ i);
printf("\n");
return 0;
}
int print_star(int value)  {
int i = 0;
for(i = 0; i < value; i++)
printf("*");
}

o/p: aaxyz

a:**
b:
c:
...
...
x:*
y:**
z:*
4

2 に答える 2

1

呼び出しにフォーマット引数がありませprintfん。これがあります:

printf("%d:%c\n",print_star(char_count[i]),'a'+ i);

printfしかし、これがあなたの意図したものであると私が知る限り、あなたは に2つの引数を渡しています:

printf("%d:%c\n",print_star(char_count[i]),'a'+ i);

また、print_star戻り値はありintますが、ステートメントがありません。戻るつもりだったreturnと思います。iその場合は、次を追加する必要があります。

return i ;

最後に。最後に改行がない場合の動作は未定義です。最後に、前方宣言にタイプミスがあるようです。これは次のとおりです。

int print_fun(int);

次のようにする必要があります。

int print_star(int value );
于 2013-05-20T02:13:08.733 に答える