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

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

01.02.13
2 ответа

Лучший ответ по мнению автора

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

#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 }
01.02.13
Лучший ответ по мнению автора

Другие ответы

#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;
}

01.02.13

Виталий

Читать ответы
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store