Технологии

Решено

6 Дан массив из n... - вопрос №538870

Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). В качестве символов могут использоваться только арабские цифры. Удалить из массива слово, содержащее наибольшее количество четных цифр.

февраль 1, 2013 г.

  • Всего ответов: 2

  • Сергей - аватарка

    Сергей

    9-й в Технологиях

    #include<stdio.h>
    #include<cstring>

    int main()
    {
    // number of words in array
    unsigned n;
    printf(«Input n, please: „);
    scanf(“%d», &n);

    // array (n words of max. 80 symbols)
    char arr[n][80];

    // input a array and wind word with max length
    unsigned maxL = 0;
    unsigned maxIdx = 0;
    for (unsigned x = 0; x < n; x++) {
    printf(«Input word #%d, please: », x + 1);
    scanf("%s", arr[x]);
    if (strlen(arr[x]) >= maxL) {
    maxL = strlen(arr[x]);
    maxIdx = x;
    }
    }

    // remove item with index maxIdx (shift a array up)
    for (unsigned x = maxIdx; x < (n — 1); x++)
    strcpy(arr[x], arr[x + 1]);

    // decrease size

    n--;

    // print a array
    printf(«result arraay:\n»);
    for (unsigned x = 0; x < n; x++)
    printf(«item #%d = %s\n», x + 1, arr[x]);

    return 0;
    }

    февраль 1, 2013 г.
    Ответ понравился автору
  • Сергей - аватарка

    Сергей

    9-й в Технологиях

    Прошу прощения, только сейчас увидел условие на четность (не внимательно прочитал задние) Программа будет выглядеть так:

    #include<stdio.h><br />#include<cstring><br />#include<stdlib.h>
    <br />int main() <br />{<br />// number of words in array<br />unsigned n;<br />printf("Input n, please: ");<br />scanf("%d", &n);<br /><br />// array (n words of max. 80 symbols)<br />char arr[1024][80];<br /><br />// input a array and find word with max count of even items<br />unsigned maxL = 0;<br />unsigned maxIdx = 0;<br />for (unsigned x = 0; x < n; x++) {<br />printf("Input word #%d, please: ", x + 1);<br />scanf("%s", arr[x]);<br /><br />unsigned l = 0;<br />for (unsigned y = 0; y < strlen(arr[x]); y++) {<br />	unsigned v = arr[x][y] - 48;<br />	if (!(v & 1))<br />		l++;<br />}<br />if (l > maxL) {<br />maxL = l;<br />maxIdx = x;<br />}<br />}<br /><br />// remove item with index maxIdx (shift a array up)<br />for (unsigned x = maxIdx; x < (n - 1); x++)<br />strcpy(arr[x], arr[x + 1]);<br /><br />// decrease size<br /><br />n--;<br /><br />// print a array<br />printf("result arraay:\n");<br />for (unsigned x = 0; x < n; x++)<br />printf("item #%d = %s\n", x + 1, arr[x]);<br /><br />// pause<br />printf("press any key, then ENTER for exit...");<br />char a[100];<br />scanf("%s", a);<br /><br />return 0;<br />}

    февраль 1, 2013 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы

счетчик нажатий на кнопку.

декабрь 11, 2011 г.

Технологии