- •1)Дана строка символов. Написать фрагмент программы, считающий и выводящий на экран максимальное количество идущих подряд пробелов.
- •7)Написать фрагмент программы, подсчитывающий количество нулевых элементов в массиве чисел. Оформить как функцию, принимающую указатель и целое, и возвращающую целое.
- •8) Написать фрагмент программы, удаляющий из одномерного массива целых чисел все вхождения максимального и минимального элементов.
- •11)Написать фрагмент программы, заменяющий в одномерном массиве целых чисел максимальное значение средним арифметическим его элементов, находящихся на нечетных позициях.
- •12)Написать функцию, принимающую в качестве параметров два целых числа и возвращающую наибольшее из них.
- •9)Данные о студентах (фио, средний балл) хранятся в массиве структур. Написать фрагмент программы, печатающий на экране ведомость, упорядочив вывод в порядке убывания среднего балла.
- •10)Написать фрагмент программы, заменяющий в произвольной квадратной матрице строку с минимальным элементом матрицы нулями.
- •13)Написать функцию, принимающую в качестве параметров три целых числа и возвращающую наибольшее из них.
- •14)Данные о товарах (наименование, цена) хранятся в массиве структур. Написать фрагмент программы, выводящий на экран прайс-лист в порядке возрастания цены (от дешевого к дорогому).
- •20)Напишите программу, которая вычисляет площадь треугольника, если известны его высота и основание (высоту и основание запросить с клавиатуры).
- •22)Написать фрагмент программы, находящий 5 наибольших элементов массива целых чисел.
- •21)Данные о книгах хранятся в массиве структур (автор, название, количество страниц). Написать фрагмент программы, выводящий на экран данные о книгах, имеющих более 300 страниц.
- •24)Написать фрагмент программы, находящий в одномерном массиве, состоящем из n вещественных элементов, среднее значение всех элементов и заменяющий им наименьший элемент.
- •26)Написать фрагмент программы, подсчитывающий в массиве целых чисел, размером n, максимальное количество идущих подряд нулевых элементов.
7)Написать фрагмент программы, подсчитывающий количество нулевых элементов в массиве чисел. Оформить как функцию, принимающую указатель и целое, и возвращающую целое.
int CountZero( int *mas, int N )
{
int nZero = 0;
for( int i = 0; i < N; i++ )
if( mas[i] == 0 )
nZero++;
return( nZero );
}
8) Написать фрагмент программы, удаляющий из одномерного массива целых чисел все вхождения максимального и минимального элементов.
void DelMaxMinElem( int *mas, int N )
{
int nMax = mas[0];
int nMin = mas[0];
int nMaxIndex = 0, nMinIndex = 0;
int nCountMax = 0, nCountMin = 0;
// ищу макс. и мин элементы
for( int i = 0; i < N; i++ )
{
if( nMax < mas[i] ) // поиск максимального элемента
{
nMax = mas[i];
nMaxIndex = i;
nCountMax = 1;
}
if( nMin > mas[i] )// поиск минимального
{
nMin = mas[i];
nMinIndex = i;
nCountMin = 1;
}
}
// удаляю эти элементы
if( nMaxIndex < nMinIndex )
{
// кдаляю мин
N--;
for( int i = nMinIndex; i < N; i++ )
mas[i] = mas[i+1];
// удаляю максим.
N--;
for( int i = nMaxIndex; i < N; i++ )
mas[i] = mas[i+1];
}
else
{
// удаляю максим.
N--;
for( int i = nMaxIndex; i < N; i++ )
mas[i] = mas[i+1];
// кдаляю мин
N--;
for( int i = nMinIndex; i < N; i++ )
mas[i] = mas[i+1];
}
// удаление повтор. мин. эелементов
for( int i = 0; i < N; i++ )
{
if( mas[i] == nMin )
{
for( int j = i; j < N-1; j++ )
mas[j] = mas[j+1];
N--;
i--;
}
}
// удаление повтор.макс.элементов
for( int i = 0; i < N; i++ )
{
if( mas[i] == nMax )
{
for( int j = i; j < N-1; j++ )
mas[j] = mas[j+1];
N--;
i--;
}
}
}
11)Написать фрагмент программы, заменяющий в одномерном массиве целых чисел максимальное значение средним арифметическим его элементов, находящихся на нечетных позициях.
void ExecMatrix( int mas[], int N )
{
int i;
int nSredn = 0;
int nCoutElm = 0;
for( i = 1; i < N; i += 2 )
{
nCoutElm++;
nSredn += mas[i];
}
nSredn /= nCoutElm;
int nMaxIndex = 0;
for( i = 0; i < N; i++ )
if( mas[i] > mas[ nMaxIndex ] )
nMaxIndex = i;
mas[nMaxIndex] = nSredn;
}
12)Написать функцию, принимающую в качестве параметров два целых числа и возвращающую наибольшее из них.
int ReturnMaxParam( int A, int B )
{
return( (A>B)?(A):(B) );
}
9)Данные о студентах (фио, средний балл) хранятся в массиве структур. Написать фрагмент программы, печатающий на экране ведомость, упорядочив вывод в порядке убывания среднего балла.
// привел полный исходник программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
struct Student
{
char szFIO[80];
float fBall;
};
void Execute( Student *mas, int N )
{
float nSrednCena = 0;
int nCout = 0;
// сортировка
for( int i = 0; i < N; i++ )
for( int j = 0; j < N; j++ )
if( mas[i].fBall > mas[j].fBall )
{
Student buf = mas[i];
mas[i] = mas[j];
mas[j] = buf;
}
printf( "Ведоость:\n" );
for( int i = 0; i < N; i++ )
{
printf( "%s\n", mas[i].szFIO );
printf( "%f\n", mas[i].fBall );
printf( "-------------\n" );
}
system( "pause" );
}
int main( void )
{
setlocale( LC_ALL, "rus" );
// тут просто вношу данные
Student mas[3];
strcpy( mas[0].szFIO, "Петров Петр Петрович" );
mas[0].fBall = 99.8;
strcpy( mas[1].szFIO, "Иванов Иван Иванович" );
mas[1].fBall = 55;
strcpy( mas[2].szFIO, "Козлов Козел Кощлович" );
mas[2].fBall = 80;
// обработка
Execute( mas, 3 );
return(0);
}
