在电子书上看到一个题!不知道怎么做..求解!
编写一个程序,打印输入中单词长度的直方图。水平方向的直方图容易一些,竖直方向的直方图就困难些..!
[解决办法]
这种问题,应该先自己写,理清思路,然后有问题,再来问。
什么叫你不会?
答:没学过C,当然不会,没学到相关的知识,可以说不会。
。 学过C,又学过相关知识,却不自己动手写,永远都只能说不会!
[解决办法]
放在二位数组中,列就可以认为是竖直的。
[解决办法]
#include <stdio.h>
#define MAXWORDLEN 10
int main(void)
{
int c;
int inspace = 0;
long lengtharr[MAXWORDLEN + 1];
int wordlen = 0;
int firstletter = 1;
long thisval = 0;
long maxval = 0;
int thisidx = 0;
int done = 0;
for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
lengtharr[thisidx] = 0;
}
while(done == 0)
{
c = getchar();
if(c == ' '
[解决办法]
c == '\t'
[解决办法]
c == '\n'
[解决办法]
c == EOF)
{
if(inspace == 0)
{
firstletter = 0;
inspace = 1;
if(wordlen <= MAXWORDLEN)
{
if(wordlen > 0)
{
thisval = ++lengtharr[wordlen - 1];
if(thisval > maxval)
{
maxval = thisval;
}
}
}
else
{
thisval = ++lengtharr[MAXWORDLEN];
if(thisval > maxval)
{
maxval = thisval;
}
}
}
if(c == EOF)
{
done = 1;
}
}
else
{
if(inspace == 1
[解决办法]
firstletter == 1)
{
wordlen = 0;
firstletter = 0;
inspace = 0;
}
++wordlen;
}
}
for(thisval = maxval; thisval > 0; thisval--)
{
printf("%4d
[解决办法]
", thisval);
for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
if(lengtharr[thisidx] >= thisval)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf(" +");
for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
{
printf("---");
}
printf("\n ");
for(thisidx = 0; thisidx < MAXWORDLEN; thisidx++)
{
printf("%2d ", thisidx + 1);
}
printf(">%d\n", MAXWORDLEN);
return 0;
}
Here's the output of the program when given its own source as input:
113
[解决办法]
*
112
[解决办法]
*
111
[解决办法]
*
110
[解决办法]
*
109
[解决办法]
*
108
[解决办法]
*
107
[解决办法]
*
106
[解决办法]
*
105
[解决办法]
*
104
[解决办法]
*
103
[解决办法]
*
102
[解决办法]
*
101
[解决办法]
*
100
[解决办法]
*
99
[解决办法]
*
98
[解决办法]
*
97
[解决办法]
*
96
------解决方案--------------------
*
95
[解决办法]
*
94
[解决办法]
* *
93
[解决办法]
* *
92
[解决办法]
* *
91
[解决办法]
* *
90
[解决办法]
* *
89
[解决办法]
* *
88
[解决办法]
* *
87
[解决办法]
* *
86
[解决办法]
* *
85
[解决办法]
* *
84
[解决办法]
* *
83
[解决办法]
* *
82
[解决办法]
* *
81
[解决办法]
* *
80
[解决办法]
* *
79
[解决办法]
* *
78
[解决办法]
* *
77
[解决办法]
* *
76
[解决办法]
* *
75
[解决办法]
* *
74
[解决办法]
* *
73
[解决办法]
* *
72
[解决办法]
* *
71
[解决办法]
* *
70
[解决办法]
* *
69
[解决办法]
* *
68
[解决办法]
* *
67
[解决办法]
* *
66
[解决办法]
* *
65
[解决办法]
* *
64
[解决办法]
* *
63
[解决办法]
* * *
62
[解决办法]
* * *
61
[解决办法]
* * *
60
[解决办法]
* * *
59
[解决办法]
* * *
58
[解决办法]
* * *
57
[解决办法]
* * *
56
[解决办法]
* * *
55
[解决办法]
* * *
54
[解决办法]
* * *
53
[解决办法]
* * *
52
[解决办法]
* * * *
51
[解决办法]
* * * *
50
[解决办法]
* * * *
49
[解决办法]
* * * *
48
[解决办法]
* * * *
47
[解决办法]
* * * *
46
[解决办法]
* * * *
45
[解决办法]
* * * *
44
[解决办法]
* * * *
43
[解决办法]
* * * * *
42
[解决办法]
* * * * *
41
[解决办法]
* * * * *
40
[解决办法]
* * * * *
39
[解决办法]
* * * * *
38
[解决办法]
* * * * *
37
[解决办法]
* * * * *
36
[解决办法]
* * * * *
35
[解决办法]
* * * * *
34
[解决办法]
* * * * *
33
[解决办法]
* * * * *
32
[解决办法]
* * * * *
31
[解决办法]
* * * * *
30
[解决办法]
* * * * * *
29
[解决办法]
* * * * * *
28
[解决办法]
* * * * * * *
27
[解决办法]
* * * * * * *
26
[解决办法]
* * * * * * *
25
[解决办法]
* * * * * * * *
24
[解决办法]
* * * * * * * *
23
[解决办法]
* * * * * * * *
22
[解决办法]
* * * * * * * * *
21
[解决办法]
* * * * * * * * *
20
[解决办法]
* * * * * * * * *
19
[解决办法]
* * * * * * * * *
18
[解决办法]
* * * * * * * * *
17
[解决办法]
* * * * * * * * *
16
[解决办法]
* * * * * * * * *
15
[解决办法]
* * * * * * * * *
14
[解决办法]
* * * * * * * * * *
13
[解决办法]
* * * * * * * * * *
12
[解决办法]
* * * * * * * * * *
11
[解决办法]
* * * * * * * * * *
10
[解决办法]
* * * * * * * * * *
9
[解决办法]
* * * * * * * * * * *
8
[解决办法]
* * * * * * * * * * *
7
[解决办法]
* * * * * * * * * * *
6
[解决办法]
* * * * * * * * * * *
5
[解决办法]
* * * * * * * * * * *
4
[解决办法]
* * * * * * * * * * *
3
[解决办法]
* * * * * * * * * * *
2
[解决办法]
* * * * * * * * * * *
1
[解决办法]
* * * * * * * * * * *
+---------------------------------
1 2 3 4 5 6 7 8 9 10 >10