Проверьте код легкой программы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задана последовательность слов. Напечатайте эту же последовательность слов в обратном порядке.
#include <iostream.h>
#include <string.h>
#include <stdio.h>
 
int main()
{
        char s[256];                      //строка исходная
        char words[30][256];        //сюда будем записывать слова
        char *d=" ,";                  //разделители
        int count=0;                  //количество слов
        printf("Enter your string:\n");
        while((s=getchar())!=EOF)
       count++;
        char *p;
        p=strtok(s, d);                                //первое слово
       for(;str[i]!='\0' && str[i]=' ';i++)
     {
        word[p]=str[i];                              //записываем первое слово
        count++;
                   
        while(p=strtok(NULL, d))                //остальные слова
        word[d]=str[i];
           /*     strcpy(words[count++], p);   */  //записываем остальные слова
        for (int i=count-1; i>=0; i--)            //в обратном порядке выводим
        printf("%d\n", word[i]);
        system("PAUSE");
        return 0;
}

Решение задачи: «Проверьте код легкой программы»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
 
enum{
    MAX_SIZE_STRING = 256,
    MAX_NUMBER_WORDS = 30
};
 
 
int main(void){
    const char delim[] = " ,\n";
    char str[MAX_SIZE_STRING];
    char words[MAX_NUMBER_WORDS][MAX_SIZE_STRING];
    
    printf("Enter your string: ");
    
    char *word = strtok(fgets(str, MAX_SIZE_STRING, stdin), delim);
    int count = 0;
    
    for(; word; word = strtok(NULL, delim))  strcpy(words[count++], word);
    
    for (int i = count - 1; i >= 0; --i)  printf("%s\n", words[i]);
    
    return EXIT_SUCCESS;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с памятью, вводом/выводом и строками.
  2. Определяем значения констант для ограничения размеров строк и количества слов.
  3. Определяем функцию main() как точку входа в программу.
  4. Инициализируем строку-разделитель для разделения входной строки на слова.
  5. Выделяем память под строку, которую будет заполнять пользователь.
  6. Выделяем память под массив строк, который будет хранить слова.
  7. Запрашиваем у пользователя ввод строки.
  8. Находим первое слово в строке, используя функцию strtok().
  9. Считываем количество слов в строке.
  10. Копируем слова в массив.
  11. Выводим слова в обратном порядке.
  12. Завершаем программу успешно.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы