Р. А. Юсупов, С. Н. Искандарова, Ш. Мирзанова C/C++ тилида топшириқ ва масалалар Самарқанд – 2013 йил
Download 1.35 Mb.
|
CPP masalalari1
Часть II. Решения 133 printf("Введите образец для поиска (целое число) -> "); scanf("%i", &obr); // бинарный поиск verh = 0; niz =^ SZ - 1; found = 0; n = 0; do { sred = (niz-verh) / 2 + verh; // делим массив пополам n++; if (a[sred] == obr) found = 1; else //в какой части, в верхней или в нижней, // может находиться искомый элемент? if ( obr < а[sred]) niz = sred-1; //в верхней else verh = sred+1; // в нижней } while (verh <= niz && !found); if (found) { printf("Совпадение с элементом номер %i ", sred); printf("Выполнено %i сравнений" , n); } else printf("Образец в массиве не найденХп"); bye: printf("\пДля завершения работы нажмите getch(); } Задача 157 // Анализ роста учеников #include #include #define SZ 30 //максимальное кол-во учеников void main О { int r; // рост ученика 134 С/С-^"*- в задачах и примерах int rost[SZ]; // рост всех учеников int п = 0; // кол-во учеников, о которых // введены сведения float sred; // средний рост int m = 0; // кол-во учеников, у которых // рост больше среднего int sum =0; // суммарный рост int i == 0; printf("*** Анализ роста учеников ***\п"); printf("Вводите рост (см) учениковХп"); printf("Для завершения введите О и нажмите do { printf("-> "); scanf("%i", &r); if ( r ) { rost[i++] = r; sum += r; П+-1-; } } while (r && i < SZ) ; if ( n ) { sred =» (float) sum / n; m = 0; // сравним рост каждого со средним for (i = 0; i < n; i++) if (rost[i] > sred) m++; printf("Средний рост: %3.2f см\п", sred); printf("У %i учеников рост превышает среднийХп", m) ; } printf("\пДля завершения нажмите getch(); Задача 158 // Вычисление суммы элементов массива (по столбцам) #include #include idefine ROW 3 // кол-во строк #define COL 5 // кол-во столбцов void mainO { int a[ROW][COL]; // массив int s[COL]; // сумма элементов int i,j; printf("\пВведите массивХп"); printf("После ввода элементов каждой строки,"); printf("\n%i целых чисел, нажимайте for (i = 0; i < ROW; i-f+) // ROW строк { printf("->"); for (j = 0; j < COL; j++) scanf("%i", &a[i][j]); } printf("ХпВведенный массивХп"); for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) printf("%i " , a[i][j]); printf("\n"); } // "очистим" массив s for (i = 0; i < COL; i++) s[i3 « 0; // обработка for (j =0; j < COL; j+-f-) // для каждого столбца for (i = 0; i < ROW; i++) // суммируем эл-ты s[j] += a[i3[j]; 136 C/C++ в задачах и примерах printf (" \п") ; for (i = 0; i < COL; i++) printf("%i ", s[i]); printf("\пДля завершения нажмите getch(); } Задача 160 // Обработка результатов экзамена #include #include void main() { int n[6]; // количество двоек, ..., пятерок int s = 0; // всего оценок float p[6]; // процент каждой оценки char *mes[6] ={"\0", "\0", "двоекХО","троекХО", "четверокХО","пятерокХО"}; int i; puts("Обработка результатов экзамена"); puts("Введите исходные данные:"); for (i = 5; i >= 2; i—) { printf("%s ->", mes[i]); scanf("%i", &n[i]); s += n[i]; } // вычислим процент каждой оценки for (i = 2; i < 6; i++) p[i] = (float)n[i]/3*100; puts("Результаты экзамена"); puts (" ") ; for (i = 5; i >= 2; i—) printf("%8s %2i %2.0f%\n",mes[i], n[i], p[i]); puts (" ") ; Download 1.35 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling