Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > подскажите где ошибка


Автор: kisj 23.12.2005, 03:08
написала программу по С, кажется должна работать, но не хочет этого делать! может кто поскажет в чем моя ошибка?
задание: в введенном тексте подсчитать количество символов в слове максимальной длины.
т.к. курс первый, нельзя использовать функции, только самые простейшие.

Код

int main()
{
   char text[500];
   int a[500];
   int i,max;
   int k = 0;
   char z;
   int num = 0, dim = 0;
   printf("введите предложение:\n");
   z=getchar();
   while (z)
   {
      text[k++] = z;
      num=num+1;
       if (z == '.' || z == '!' || z == '?')
      {
         a[dim++] = num - 1;
         break;
      }

       if (z == ' ')

      {
         a[dim++] = num - 1;
          num = 0;
      }
   }

   text[k] = '\0';
   max = a[0];
      for (i = 0; i < dim; i++);
       if (max<a[i])  max=a[i];
   printf("максимальное число=%d",max);
   return 0;
}

Автор: Dov 23.12.2005, 11:41
У тебя всё правильно, только нужно было getchar() в цикл засунуть.
Код
#include <stdio.h>

int main()
{
    char    text[500],
            z;
    int     a[500],
            num = 0,
            max = 0,
            dim = 0,
            k   = 0,
            i;   

    printf("введите предложение и нажмите ENTER:\n");
    do 
    {
        z = getchar();

        text[k++] = z;  
        num++;
        
        if(z == '.' || z == '!' || z == ' ' || z == '?' || z == '\n')
        {
            a[dim++] = num - 1; 
            num = 0;
        }
    
    }while (z != '\n');
    
    text[k] = '\0';  

    max = a[0];
    for(i = 0; i < dim; i++)
        if(max < a[i])
            max = a[i]; 

    printf("максимальное число = %d\n", max); 
    
    return 0;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)