Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины - C (СИ)

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

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

Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины и количество символов в этом слове. Строка задается в качестве параметра командной строки.

Решение задачи: «Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины»

textual
Листинг программы
#include <stdio.h>
void main(int npar, char *par[]) {
    int m, mi;
    int ind, len, i;
    char *p;
 
    p=par[1];
    printf("%s\n", p); \\ печать входной строки
    m = 0;
    mi = -1;
    ind=0;
    len=0;
    for(i=0; p[i]!='\0'; i++) {
        if(p[i]!=',') {
            len++;
        } else {
            if(mi==-1 || len < m) {
                m = len;
                mi = ind;
            }
            ind++;
            len = 0;
        }
    }
    printf("%d %d\n", m, mi);
 
}

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

В этом коде:

  1. Вводится строка, которая передается как аргумент функции main в виде массива символов.
  2. Создаются переменные для хранения количества слов и индекса слова минимальной длины: m, mi.
  3. Инициализируются переменные ind, len, i, p.
  4. Строка передается в переменную p.
  5. В цикле for перебираются все символы строки.
  6. Если текущий символ не запятая, то увеличивается счетчик len.
  7. Если текущий символ запятая, то проверяется, является ли текущая длина слова минимальной.
  8. Если минимальная длина слова обновляется, то обновляются значения переменных m, mi.
  9. После окончания цикла выводятся значения переменных m, mi.

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

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