这道题是C程序语言设计中的练习1-13.
只是基本实现,若有错误或更优秀的方法,欢迎指正,谢谢。
习题1-14类似,依次小改即可。
#include <stdio.h> main() { int i; int c; int num = 0; int a = 0;//字母个数 int b[10];//数字个数 int d = 0;//空格个数 int e = 0;//其他字符个数 //对数组进行赋值 for(i = 0; i < 10; ++i){ b[i] = 0; } //开始进行字母类型判断 while ((c = getchar()) != EOF){ //当输入为英文字母时 if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) ++a; //当输入为数字时 else if (c >= '0' && c <= '9') ++b[c-'0']; //当输入为空格、换行符、制表符时 else if (c == ' ' || c == '\n' || c == '\t') ++d; //其他输入 else ++e; } //计算输入数字总个数 for(i = 0; i < 10; ++i) num += b[i]; //打印字母个数 printf("\nEN_words: "); for(i=0;i<a;i++) printf("*"); printf(" %d", a); //打印数字个数 printf("\nnumbers: "); for (i=0; i<num;i++) { printf("*"); } printf(" %d", num); //打印空格及换行的个数 printf("\nempty: "); for (i=0; i<d; i++) { printf("*"); } printf(" %d", d); //打印其他字符出现个数 printf("\nothers: "); for (i=0; i<e; i++) { printf("*"); } printf(" %d", e); printf("\n"); return 0; }
最后是实例图: