почему ты не даешь циклу нормально работать???
Вывод результатов нужно делать ПОСЛЕ работы цикла! А иначе получается ты пытаешься
выводить каждый раз когда нажимаешь Enter, как же в таком случае ты посчитаешь сколько раз он нажат. Если его не нужно считать и он должен завершать ввод, то просто
for(i=0;(array[i]=(char )getchar())!='\n';i++)
и внизу в цикле не нужно ничего пихать в массив(вместо табуляции), только считай повторы
поскольку ты пихаешь каждый символ уже
for(i=0;(array[i]=(char )getchar())!='\n';i++)
тут_______/
и это чего должно делать?
Код:
for (z=0; z<i; ++z)
{
if (array[z] == ' ')
{
printf(" _\n");
}
else {
printf("| |\n");
}
}
если это гистограмма то почему ты не используешь уже вычесленные n,space,t?
загоняй в for
типа
Код:
for(i=0;i<space;i++)
printf('=');
printf("\r\n");
одна линейка готова
Если же ты хочешь выходить все таки по EOF то...
Код:
#include <stdio.h>
/*program for copy input string to output string, in this programm here
edit symbol tab and backspace for input \\ */
main()
{
int c, t, space, n, i, l, z, h;
char array[100], nl;
c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
nl = '\\';
for(i=0;(array[i]=(char )getchar())!=EOF;i++)
{
if(array[i]=='\t') {
array[i]=nl; \\ непонятная замена
++t;
}
if(array[i]=='\b') {
array[i]=nl; \\ непонятная замена
}
if(array[i]>='0' && array[i]<='9') {
n++;
}
if(array[i]==' ') {
space++;
}
if(array[i]=='\n') {
array[i] = 0;
printf(" _\n");
for(z=0;z<space;z++)
printf('=');
printf("spaces\r\n");
for(z=0;z<n;z++)
printf('=');
printf("numbers\r\n");
for(z=0;z<t;z++)
printf('=');
printf("tabs\r\n");
printf("\nSymbol:%s\r\n", array);
printf("\nTab:%d\r\n", t);
printf("\nSpace:%d\r\n", space);
printf("\nNumber:%d\r\n", n);
// и главное сбрасывай счетчик i
// иначе в твоем исполнении опасно!!!
i=0; //!!!!!!!!!!!!!!!!!!!!!!!
// хотя этот break тебе и не даст 8)))
// но УЧИСЬ сбрасывать счетчики чтоб
// заработал EOF
// break; УБИРАЕМ ЭТО!!!!
// получится что статистика выводится только
// при нажатии Ентера
// значит нужно снова обнулить
c = t = space = n = 0;
}
}
}