Задан двумерный массив слов с размерностью 3 * 4. Каждое слово содержит не более 10 символов. Распечатать слово, содержащее наибольшее количество цифр, и значения индексов этого слова.
Решение задачи на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <stdio.h> int main() { // зададим двумерный массив слов [3][4] char *mass[][4] = { { "sd7823", "d8d2jz", "dsfsdf", "234" }, { "fsd8", "asd6", "sdf8", "j382436" }, { "3", "sdfsd", "g4r", "sd3" } }; // целочисленные переменные для хранения индексов слова (с максимальным количеством цифр) в массиве // и для хранения числа со значением максимального количества цифр в слове массива (maxK) // сначала присвоим им значения -1 int maxI = -1, maxJ = -1, maxK = -1; // в циклах for пройдемся по всем словам массива for (int i = 0; i < 3; i++) for (int j = 0; j < 4; j++) { // количество цифр в слове int k = 0; // индекс текущей буквы слова int w = 0; // пройдем по буквам mass[i][j] слова while (mass[i][j][w] != '\0') { // если w-й символ это цифра, то k++ if (mass[i][j][w] >= '0' && mass[i][j][w] <= '9') k++; w++; } // проверим - не является ли посчитанное количество цифр максимальным на данный момент if (k > 0 && k > maxK) { maxK = k; maxI = i; maxJ = j; } } // если maxK было найдено, то выводим результаты в консоль if (maxK != -1) { printf("word = %s\n", mass[maxI][maxJ]); printf("i = %d, j = %d\n", maxI, maxJ); } else // иначе - выведем строку с информацией о том, что слов с цифрами в массиве нет { printf("There is no word with numbers\n"); } return 0; } |
Демонстрация работы программы
Поделиться в соц. сетях: