1.Написать программу, которая вычисляет среднее арифметическое действительных элементов массива без учета минимального и максимального элементов массива.
#include <stdio.h>
#include <conio.h>
#define n 10
void main()
{
clrscr();//очистка экрана
m:float a[10],min,max,s=0,k,c;//a-массив min-миним max — макс s — сумма
int i;// i-переменнвая цикла
for (i=0;i<n;i++)
{
printf(» Вв %d эл-т массива=>»,i+1);
scanf(«%f»,&a[i]);//заполнение массива
s+=a[i];//наращивание суммы
}
min=a[0];
max=a[0];
for (i=0;i<n;i++)//цикл вычисляет макс и миним
{
if (min>a[i])
min=a[i];
if (max<a[i])
max=a[i];
}
s=s-max-min;//в s сумма всех кроме макс и миним
printf(» Среднеарифм= %.2f»,s/(n-2));//выводится среднеарифм
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
2. Дан массив натуральных чисел. Найти сумму элементов, кратных k.
#include <stdio.h>
#include <conio.h>
#define n 10
void main()
{
clrscr();//очистка экрана
m:int a[n],i,k,kol=0,c;
printf(» Введи число k=»);
scanf(«%d»,&k);//ввод числа k
for (i=0;i<n;i++)//заполнение массива
{
printf(» Вв %d эл-т масс=>»,i+1);
scanf(«%d»,&a[i]);
if (a[i]%k==0)//наращивание эл-тов кратных k
kol++;
}
if (kol==0)//проверка на наличие таких эл-тов
printf(» Таких нет»);
else
printf(» Ко-во эл-тов = %d»,kol);//вывод кол-ва
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
3.Дан массив действительных чисел. Найти количество положительных элементов.
#include <stdio.h>
#include <conio.h>
#define n 10
void main()
{
clrscr();
float a[n];
m:int i,k=0,c;//i — переменная цикла k — кол-ва с-повтор ввод
for (i=0;i<n;i++)//заполнение массива
{
printf(» ‚ў %d н«-в ¬ббЁў=>»,i+1);
scanf(«%f»,&a[i]);
if (a[i]>0)//проверка на положительность
k++;//наращивание
}
if (k==0)//проверка на существование
printf(» ’ЄЁе Ґв»);
else
printf(» Љ®-ў® Ї®«®¦ = %d»,k);//вывод
printf(» Џ®ўв®аЁвм ўў®¤? 1-¤ 0-Ґв =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
4.Задана матрица B[N, M]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно.
#include <stdio.h>
#include <conio.h>
#define n 5
void main()
{
clrscr();//очистка экрана
m:int a[n][n],i,j,k=1,c;//а — массив i,j — перем цикла k — флаг c — повт ввод
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
printf(» ‚ў %d,%d н«-в ¬б=>»,i+1,j+1);//заполнение массива
scanf(«%d»,a[i][j]);
}
for (i=0;i<n;i++)
for (j=0;j<n;j++)
if (a[i][j]!=a[j][i])//проверка на симм.
k=0;
if (k==0)
printf(» Матрица не симм»);
else
printf(» Матрица симм»);
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
5.Задана квадратная матрица. Получить транспонированную матрицу, т.е. матрицу, где столбцы и строки меняются местами.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
void main()
{
randomize();
clrscr();//очистка экрана
m:int a[n][n],i,j,temp,c;//temp-переменная для перестановки c — повтор ввод
for (i=0;i<n;i++)
{
printf(» «);
for (j=0;j<n;j++)
{
a[i][j]=random(10);//заполнение массива случайными числами
printf(«%3d»,a[i][j]);
}
}
for (i=0;i<n;i++)
for (j=i;j<n;j++)
{
temp=a[i][j]; //замена строк на столбцы
a[i][j]=a[j][i];
a[j][i]=temp;
}
printf(» «);
for (i=0;i<n;i++) //вывод транспонир матрицы
{
printf(» «);
for (j=0;j<n;j++)
printf(«%3d»,a[i][j]);
}
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повтор ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
6.Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
#define m 7
void main()
{
randomize();
clrscr();//очистка экрана
l: int a[n][m],c,i,j,max,min,temp,max_i,max_j,min_i,min_j;//max min — макс и миним и их индексы
for (i=0;i<n;i++)
{
printf(» «);
for (j=0;j<m;j++)
{
a[i][j]=random(10);//заполнение массива случ числами
printf(«%3d»,a[i][j]);
}
}
max=a[0][0]; //обнуление индексов и присвоение макс и миним перв. эл-та
min=a[0][0];
max_i=0;
max_j=0;
min_i=0;
min_j=0;
for (i=0;i<n;i++)//поиск макс и миним
for (j=0;j<m;j++)
{
if (max<a[i][j])
{
max=a[i][j];
max_i=i;
max_j=j;
}
if (min>a[i][j])
{
min=a[i][j];
min_i=i;
min_j=j;
}
}
a[max_i][max_j]=min;//обмен макс и миним
a[min_i][min_j]=max;
printf(» «);
for (i=0;i<n;i++)
{
printf(» «);
for (j=0;j<m;j++)
printf(«%3d»,a[i][j]);//вывод
}
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повт ввод
scanf(«%d»,&c);
if (c==1)
goto l;
getch();
}
№ 9
Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
#include <stdio.h>
#include <conio.h>
long int fakt(int a)//функция вычисляющая факториал
{
long int f=1;
int i;
for (i=2;i<=a;i++)//цикл вычисляет факториал
f*=a;
return f;//возвращение переменной
}
void main()
{
clrscr();//очистка экрана
int i;
long int s=0;//s-переменная суммы
for (i=1;i<=9;i+=2)
s+=fakt(i);//наращивание суммы
printf(«Сумма факториалов=%li»,s);//вывод результата
getch();
}
№ 22
Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке (например, дано число 156, нужно получить 651).
#include <stdio.h>
#include <conio.h>
int peres(int a)//функция инвертирует число
{
int b,k=0;
while(a!=0)
{
b=a%10;//формирование нового числа
k=k*10+b;
a/=10;
}
return k;//возврат инвертированного числа
}
void main()
{
clrscr();//очистка экрана
int a,b,c;
m:printf(«Введите число=»);
scanf(«%d»,&a);//ввод числа а
b=peres(a);//вызов функции
printf(» Результат =%d»,b);//вывод результата
printf(» повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
№ 47 Найдите сумму цифр заданного натурального числа.
#include <stdio.h>
#include <conio.h>
int summa(int a)//функция считает сумму цифр в числе
{
int s=0;
while(a!=0)
{
s+=a%10;//наращивание суммы
a/=10;
}
return s;//возвращение переменной
}
void main()
{
clrscr();//очистка экрана
int a,sum,c;
m:printf(«Введите число=»);
scanf(«%d»,&a);//ввод переменной а
sum=summa(a);//вызов функции
printf(» Сумма цифр в числе %d = %d»,a,sum);//вывод результата
printf(» Повторить ввод? 1-да 0-нет =»);//Запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
№ 48 Подсчитать количество цифр в заданном натуральном числе
#include <stdio.h>
#include <conio.h>
int kolvo(long int a)//функция считает ко-во цифр в числе
{
int k=0;
while(a!=0)
{
k++;//наращивание количества
a/=10;
}
return k;//возвращение переменной
}
void main()
{
clrscr();//очистка экрана
long int a;
int kol,c;
m:printf(«Введите число=»);
scanf(«%li»,&a);//ввод переменной а
kol=kolvo(a);//вызов функции
printf(» Ко-во цифр в числе %li = %d»,a,kol);//вывод результата
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}