1. Написать функцию, которая возвращает максимальное из двух целых чисел, полученных в качестве аргумента.
В среде Borland C написать про-му, которая будет реализовывать поиск максимального из 2 чисел при помощи функции.
#include <stdio.h>
#include <conio.h>
int max(int a,int b)
{
if (a>b)//проверка какое число больше
return a;
else
return b;
}
void main()
{
clrscr();//очистка экрана
int a,b,c,maks;//maks-макс число c – повт ввод
m:printf(«Введи а=»);
scanf(«%d»,&a);//ввод числа а
printf(» Введи b=»);
scanf(«%d»,&b);// ввод числа b
maks=max(a,b);//вызов функции
printf(» Максимальное число=%d»,maks);//вывод максимального
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повт ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
2.Найти номер первой из строк, не содержащих ни одного отрицательного элемента.
В среде Borland C написать про-му, которая реализовывает поиск 1 встретившейся строки, не содержащей ни 1 отриц эл-та и выводящей этот номер
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
randomize();
clrscr();//очистка экрана
int *a;
m:int n,i,j,c,fl,fl1=0;//n-разм мас i,j-перем цикла fl-проверка строк fl1-проверка существования строк
printf(«Введи размерность=»);
scanf(«%d»,&n);//ввод размерности массива
a=new int[n*n];//создание динам массива
for (i=0;i<n;i++)
{
printf(» «);
for(j=0;j<n;j++)
{
*(a+i*n+j)=random(15)-5;//заполнение массива случ числами
printf(«%3d»,*(a+i*n+j));//вывод матрицы
}
}
for (i=0;i<n;i++)
{
fl=0;
for(j=0;j<n;j++)
if (*(a+i*n+j)<0)//проверка на отрицательность
fl=1;
if (fl==0)//если нет ни 1 отрицат в строке
{
printf(» Номер строки=%d»,i+1);//вывод номера строки
fl1=1;
break;//выход из цикла
}
}
if(fl1==0)//проверка на существование строк
printf(» Таких строк нет»);
printf(» Повторить ввод? 1-да 0-нет =»);//Запрос на повторный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
3.Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом.
В среде Borland C написать про-му, которая проверяет, является ли введенная с клавиатуры строка целым числом.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
clrscr();//очистка экрана
char mas[80];
m:int a,c,k=0;
fflush(stdin);//очистка буфера клавиатуры
printf(«Введи строку=»);
gets(mas);//ввод строки
a=atoi(mas);//функция преобразования строки в число
while(a!=0)//определение ко-ва цифр в числе а
{
a/=10;
k++;
}
if(k==strlen(mas))//если ко-во цифр равно ко-ву символов то строка явл целым числом
printf(» Данная строка явл целым числом»);
else
printf(» Данная строка не явл целым числом»);
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
4.Описать структуру с именем AEROFLOT (название пункта назначения рейса, номер рейса, тип самолёта).
Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из 7 элементов типа AEROFLOT; вывод на экран номеров рейсов и типов самолётов, вылетающих в пункт назначения, название которого совпало с названием, введённым с клавиатуры (если таких рейсов нет, выдать сообщение).
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct aeroflot//описание структуры
{
char punkt[80];
int reis;
char tip[80];
};
void vvod(aeroflot *pb)//функция ввода структур
{
int i;
for (i=0;i<7;i++)
{
printf(» Введи назв пункта =»);
fflush(stdin);
gets((pb+i)->punkt);//ввод пункта
printf(» Введи номер рейса=»);
scanf(«%d»,&(pb+i)->reis);//ввод рейса
printf(» Введи тип самолёта=»);
fflush(stdin);
gets((pb+i)->tip);//ввод типа
}
}
void vivod(aeroflot *pb)//ф-ия вывода
{
int i;
for (i=0;i<7;i++)
printf(» %s %d %s»,(pb+i)->punkt,(pb+i)->reis,(pb+i)->tip);
}
void poisk(aeroflot *pb)//ф-ия поиска
{
int i,fl=0;
char sl[20];
printf(» Введи искомый пункт=»);
fflush(stdin);
gets(sl);//ввод искомого пункта
for(i=0;i<7;i++)
if(strcmp((pb+i)->punkt,sl)==0)//сравнение строк
{
printf(» %d %s»,(pb+i)->reis,(pb+i)->tip);
fl=1;
}
if (fl==0)//проверка на существование таких рейсов
printf(» Таких рейсов нет»);
}
void main()
{
clrscr();
m:int c;
aeroflot mas[7];
vvod(mas);//вызов ф-ии ввода
printf(» «);
vivod(mas);//вызов ф-ии вывода
poisk(mas);//вызов ф-ии поиска
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
5.Дан текстовый файл, содержащий вещественные числа. Определить сумму квадратов чисел и записать ее и все числовые данные в новый файл
В среде Borland C написать про-му, которая реализует чтение из 1 файла вещественных чисел и записать суммы их квадратов в другой файл
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
clrscr();//очистка экрана
FILE *in,*out;
float a,sum=0;
if ((in=fopen(«C:vas.txt»,»rt»))==0)//проверка на открытие файла vas.txt
{
printf(«Ohibka»);
exit(1);
}
if ((out=fopen(«C:rez.txt»,»wt»))==0)//проверка на открытие файла rez.txt
{
printf(«Ohibka»);
exit(1);
}
while(!feof(in))
{
fscanf(in,»%f»,&a);//считывание из файла дробных чисел в перем а
sum+=a*a;//наращивание суммы
}
fprintf(out,»%f»,sum);//занесение результата в файл rez.txt
fclose(in);//закрытие файла vas.txt
fclose(out);//закрытие файла rez.txt
getch();
}
6.В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();//очистка экрана
int *a;
m:int b,c,k=0,n,i;
printf(» Введи длину последовательности=»);
scanf(«%d»,&n);//ввод длины последовательности
a=new int[n];//создание динамического массива
for(i=0;i<n;i++)
{
printf(» введи число=»);
scanf(«%d»,&b);//ввод числа
if (b==0)//проверка нулевое ли число
{
*(a+k)=b;//занесение в массив номера
k++;//наращивание счётчика
}
}
printf(» «);
if (k==0)//проверка на существование нулевых
printf(» В последовательности нет нулевых эл-тов»);
else
for(i=0;i<k;i++)
printf(«%2d»,*(a+i));//вывод результата
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
7. Дана последовательность действительных чисел. Заменить все её члены, большие данного Z, этим числом. Посчитать количество замен.
В среде Borland C написать про-му, которая реализует ввод последовательности чисел и заменяет числа большие z на z и считает ко-во таких замен
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int *a;
m:int c,n,i,kol=0,z;
printf(» Введи число z=»);
scanf(«%d»,&z);//ввод числа z
printf(» Введи длину последовательности=»);
scanf(«%d»,&n);//ввод длины последовательности
a=new int[n];//создание динам массива
for(i=0;i<n;i++)
{
printf(» введи число=»);
scanf(«%d»,a+i);//занесение данных в массив
if (*(a+i)>z)//проверка больше ли число числа z
{
*(a+i)=z;//приравнивание
kol++;//наращивание счётчика
}
}
printf(» «);
for (i=0;i<n;i++)
printf(«%3d»,*(a+i));//вывод массива
if (kol==0)//проверка на существование замен
printf(» Замен не было»);
else
printf(» Ко-во замен=%d»,kol);//вывод ко-ва замен
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}
8. Дана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
void main()
{
randomize();
clrscr();//очистка экрана
int mas[n][n];
m:int i,j,c,m,ind,max,tmp;
printf(» Введи номер строки=»);
scanf(«%d»,&m);//ввод числа m
for(i=0;i<n;i++)
{
printf(» «);
for(j=0;j<n;j++)
{
mas[i][j]=random(10);//заполнение массива случ числами
printf(«%3d»,mas[i][j]);//вывод массива
}
}
max=mas[0][0];//приравнивание max первого эл-та гл диагонали
ind=0;//обнуление индекса
for(i=1;i<n;i++)//поиск макс эл-та на гл диагонали
if(max<mas[i][i])
{
max=mas[i][i];
ind=i;
}
m—;
for(i=0;i<n;i++)//обмен строк
{
tmp=mas[m][i];
mas[m][i]=mas[ind][i];
mas[ind][i]=tmp;
}
printf(» «);
for(i=0;i<n;i++)
{
printf(» «);
for(j=0;j<n;j++)
printf(«%3d»,mas[i][j]);//вывод изменённого массива
}
printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод
scanf(«%d»,&c);
if (c==1)
goto m;
getch();
}