C 读取输入字符并以图形格式打印引用

C 读取输入字符并以图形格式打印引用,c,C,我正在阅读输入,并试图以图形格式打印所有输入的小写字符,能够阅读并跟踪每个字符重复的次数,但无法以图形方式打印,请帮我解决。这是我的密码 #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 = getc

我正在阅读输入,并试图以图形格式打印所有输入的小写字符,能够阅读并跟踪每个字符重复的次数,但无法以图形方式打印,请帮我解决。这是我的密码

#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("*");
}

您的
printf
调用缺少格式参数,您有以下情况:

printf("%d:%c\n",print_star(char_count[i]),'a'+ i);
但您正在将两个参数传递给
printf
,据我所知,这就是您的意思:

printf("%d:%c\n",print_star(char_count[i]),'a'+ i);
另外,
print\u star
的返回值为
int
,但您没有
return
语句,我想您是想返回
I
,在这种情况下,您应该添加:

return i ;
最后。结尾没有返回的行为是未定义的。最后,转发声明中似乎有一个输入错误,如下所示:

int print_fun(int);
应该是:

int print_star(int value );
#包括
#包括
//int打印乐趣(int);
无效打印_星(int);
内部主(空){
int ch=0,i=0;
整数字符计数[26]={0};
printf(“\n注意:按*退出\n”);
而((ch=getchar())!=“*”){
if(岛下(ch))
字符计数[ch-'a']++;
}
printf(“\n”);
对于(i=0;i<26;i++){
printf(“%c:,'a'+i”);
打印星号(字符计数[i]);
printf(“\n”);
}
printf(“\n”);
返回0;
}
无效打印_星(int值){
int i=0;
对于(i=0;i
请举例说明您希望它的外观。“图形化的方式”没有多大帮助。@Leetylor:我要求的o/p已经用代码显示了答案,但没有解释,这不是一个真正的答案,我已经看到好几个人单独对此投了反对票。至少在代码中添加内联注释。似乎不需要注释。但如果有必要,最好看看你的答案-他会注意到差异,因为他编写了原始代码。
int print_star(int value );
#include <stdio.h>
#include <ctype.h>

//int print_fun(int);
void print_star(int);

int main(void){
    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:",'a'+ i);
        print_star(char_count[i]);
        printf("\n");
    }
    printf("\n");
    return 0;
}

void print_star(int value){
    int i = 0;
    for(i = 0; i < value; i++)
        printf("*");
}