
Текст программы:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
void main()
{
int b[30][30],i,j,n,m,s,max,min,imax,imin,t;
char c,vb;
randomize();
clrscr();
do{
do{
printf("vvedite kol-vo strok-n (3..10)\n");
fflush(stdin);
s=scanf("%d",&n);
}while ((n<3) || (n>10) || (s==0));
do{
printf("vvedite kol-vo stolbcov-m (3..10)\n");
fflush(stdin);
s=scanf("%d",&m);
}while ((m<3) || (m>10) || (s==0));
printf("\n");
do{
clrscr();
printf("viberite metod zapoln matrici, 1-random, 2-polzovatel\n");
vb=getch();
}while ((vb!='1') && (vb!='2'));
switch (vb)
{
case '1':{
printf("random\n");
for (i=1;i<n;i++)
{
for (j=1;j<m;j++)
{
b[i][j]=rand()%256;
}
}
break;
}
case '2':{
printf("polzovat vvod\n");
for (i=1;i<n;i++)
{
for (j=1;j<m;j++)
{
do{
clrscr();
printf("Vvedite b[%d][%d] element=",i,j);
fflush(stdin);
s=scanf("%d",&b[i][j]);
}while ((b[i][j]<0) || (b[i][j]>255) || (s==0));
clrscr();
}
}
break;
}
}
printf ("Ishodnaya matrica:\n");
for (i=1;i<n;i++)
{
printf("\n\t");
for (j=1;j<m;j++)
{
printf("%3d ",b[i][j]);
}
}
printf("\n\n");
max=b[1][1];
min=b[1][1];
imax=1;
imin=1;
for(i=1;i<n;i++)
{
for(j=1;j<m;j++)
{
if (b[i][j]>max)
{
max=b[i][j];
imax=i;
}
else if (b[i][j]<min)
{
min=b[i][j];
imin=i;
}
}
}
if ( imax==imin )
{
printf("max element nahoditsya v stroke %d\n",imax);
printf("min element nahoditsya v stroke %d\n",imin);
printf("\n");
printf ("Matrica s zamenoi strok soderjashih max element & min element: \n");
for (i=1;i<n;i++)
{
printf("\n\t");
for (j=1;j<m;j++)
{
printf("%3d ",b[i][j]);
}
}
}
else{
{
for(j=1;j<m;j++)
{
t=b[imax][j];
b[imax][j]=b[imin][j];
b[imin][j]=t;
}
}
printf("max element nahoditsya v stroke %d\n",imax);
printf("min element nahoditsya v stroke %d\n",imin);
printf ("\n");
printf ("Matrica s zamenoi strok soderjashih max element & min element: \n");
for (i=1;i<n;i++)
{
printf("\n\t");
for (j=1;j<m;j++)
{
printf("%3d ",b[i][j]);
}
}
}
printf("\n\n");
printf ("vihod n ili N\n");
c=getch();
}while ((c!='n') && (c!='N'));
}
Контрольные примеры:
Входные данные |
Выходные данные |
Примечания |
n=5 |
|
При верном вводе программа работает корректно |
m=6 |
|
При верном вводе программа работает корректно |
vb=1 |
|
При верном вводе программа работает корректно |
n=690 |
Vvedite n (3..10) |
При неверном вводе программа просит снова ввести n, т.к. стоит цикл на проверку ввода |
m=6689054 |
Vvedite m (3..10) |
Введённое число не входит в допустимый диапазон, программа прости снова ввести m, т.к. стоит цикл на проверку ввода |
vb=hjyj |
viberite metod zapoln matrici, 1-random, 2-polzovatel |
При неверном вводе ничего не происходит, т.к. стоит проверка на символ (vb=getch();) |
vb=2 |
|
При верном вводе программа работает корректно |
Вывод:
Делая программы я освоил простейшие структуры программирования, изучил стандартные операций ввода-вывода и получил навыки в организации ввода/вывода значений стандартных типов данных, освоил и использование функции проверки корректности вводимых значений по типу, изучил основные операции и стандартные функции языка.