Технологии
Решено
6 Дан массив из n... - вопрос №538870
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). В качестве символов могут использоваться только арабские цифры. Удалить из массива слово, содержащее наибольшее количество четных цифр.
февраль 1, 2013 г.
-
Всего ответов: 2
-
#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;
} -
Прошу прощения, только сейчас увидел условие на четность (не внимательно прочитал задние) Программа будет выглядеть так:
#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 />}
Лучший ответ по мнению автора
Похожие вопросы
При попытке компиляции кода на Visual Studio 2013 вылетает сообщение "Системе не удается найти указанный путь". Что это значит и что делать? Спасибо! ОС - Windows 7, 32 bit.
май 30, 2014 г.
В каком сегменте хранятся статические переменные? <p>В каком сегменте хранятся статические...
декабрь 28, 2012 г.