C Programming Language 1-13

2019-04-15 13:47发布

/* * temp.c *打印输入中单词长度的直方图 * Created on: 2012-7-18 * Author: Administrator */ //横着的 #include #include #define IN 1 #define OUT 0 #define MAX 10 void pic(); int main() { pic(); return 0; } void pic() { char c; int cnum = 0, clen[MAX] = {0}; int stat = OUT; int i, j; int done = 0; while(done == 0) { c = getchar(); if(c != ' ' && c != ' ' && c != ' ' && c != EOF) { clen[cnum]++; stat = IN; } else if(stat == IN) { if(cnum < MAX - 1 && cnum >= 0) { cnum ++; stat = OUT; } else { printf("length is out, please input again! "); continue; } } if(c == EOF) done = 1; } for(i = 0; i < cnum; i++) { for(j = 0; j < clen[i]; j++) printf("*"); printf(" "); } }  //竖着的/* * temp.c * * Created on: 2012-7-20 * Author: Administrator */ #include #include #define FALSE 1 #define TRUE 0 #define MAX_LENGTH 20 int main() { char c; int offset = 0; int iclen[MAX_LENGTH] = {0}; int i, j; int cstat = FALSE; int roop_stat = TRUE; int max_value = 0; while(roop_stat == TRUE) { c = getchar(); if(c != ' ' && c != ' ' && c != ' ' && c != EOF) { iclen[offset]++; cstat = TRUE; }else if(cstat == TRUE)//这个符号是一个单词的结尾吗 { cstat = FALSE; if(iclen[offset] > max_value) max_value = iclen[offset];//算出最长的单词的字符数 if(offset >= 0 && offset < MAX_LENGTH - 1) offset ++; else offset = MAX_LENGTH - 1; } if(c == EOF) roop_stat = FALSE; } for(i = max_value; i > 0; i--) { printf("%4d | ",i); for(j = 0; j < MAX_LENGTH; j++) { if(iclen[j] >= i)//此处i代表当前比较的值,只要单词长度不小于这个数,则就需要输出* { printf("* "); } else { printf(" "); } } printf(" "); } printf(" +"); for(j = 0; j < MAX_LENGTH; j++) { printf("---"); } printf(" "); for(j = 0; j < MAX_LENGTH - 1; j++) { printf("%2d ",j + 1); } printf(">%d ", MAX_LENGTH - 1); return 0; }