РефератыИнформатикаРаРабота над массивами с помощью языка С 2

Работа над массивами с помощью языка С 2

Задание 1.
Дан двумерный массив размерностью 5x6, заполненный целыми числами, введёнными с клавиатуры. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца.



Входные данные:


matr[5][6] - двумерный массив.


Выходные данные:


mas[6] - одномерный массив.



Текст программы:


#include <stdio.h>


#include <conio.h>


#include <math.h>


#define N 5


#define M 6


void main(void)


{


int matr[N][M];


int mas[M];


int i,j;


do{


clrscr();


printf("Введите двумерный массив n");


for(i=0;i<N;i++)


for(j=0;j<M;j++)


{


scanf("%d",&matr[i][j]);


}


printf("n двумерный массив:n");


for(i=0;i<N;i++)


{


for(j=0;j<M;j++)


printf("%7d",matr[i][j]);


printf("n");


}


printf("n массив наибольших по модулю элементов:n");


for(j=0;j<M;j++)


{


mas[j]=matr[0][j];


for(i=0;i<N;i++)


if(abs(matr[i][j])>abs(mas[j])) mas[j]=matr[i][j];


printf("%7d",mas[j]);


}


printf("nn1 - повторить");


}while(getch()=='1');


}


Блок-схема:




Тестирование:


двумерный массив:


1 -3 5 -7 0 0


0 5 8 -9 3 0


3 4 -8 4 3 0


-4 3 0 7 3 0


0 3 3 7 1 0


массив наибольших по модулю элементов:


-4 5 8 -9 3 0



Задание 2.
Дан двумерный массив n * m. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов.


Входные данные:



matr[n][m] - двумерный массив,


n, m - размер массива.


s[60] - строка.


Текст программы:


#include <stdio.h>


#include <conio.h>


#include <string.h>


void main(void)


{


int i,j;


int n,m;


int matr[10][10];


int pol,otr;


char s[60];


do{


strcpy(s,0);


clrscr();


printf("Введите размер массива (n*m)n");


scanf("%d %d",&n,&m);


printf("Введите массивn");


for(i=0;i<n;i++)


for(j=0;j<m;j++)


scanf("%d",&matr[i][j]);


printf("nОпределить, есть ли в данном массиве столбец,


в которомnравное количество положительных и отрицательных элементов.n");


for(j=0;j<m;j++)


{


otr=0;


pol=0;


for(i=0;i<n;i++)


{


if(matr[i][j]<0) ++otr;


if(matr[i][j]>0) ++pol;


}


if(pol==otr) strcat(s," есть");


else strcat(s," нет");


}


printf("n");


for(i=0;i<n;i++)


{


for(j=0;j<m;j++)


/>

printf("%6d",matr[i][j]);


printf("n");


}


printf("%s",s);


printf("nn1 - повторить");


}while(getch()=='1');


}


Блок-схема:





Тестирование:


Определить, есть ли в данном массиве столбец, в котором


равное количество положительных и отрицательных элементов.


0 1 -2 3 4


0 2 -4 5 -8


0 0 9 -7 0


0 -3 4 0 0


есть нет есть нет есть


Задание 3.
Дан двумерный массив размерностью 8x7.


а). Удалить все столбцы, а которых первый элемент больше последнего.


б). Заменить все элементы первых трёх столбцов на их квадраты.


Входные данные:



matr[8][7] - двумерный массив.


Функции:


Print - вывод массив на экран.


Текст программы:


#include <stdio.h>


#include <conio.h>


#define N 8


#define M 7


void Print(int matr[][M],int m)


{


int i,j;


for(i=0;i<N;i++) {


for(j=0;j<m;j++)


printf("%6d",matr[i][j]);


printf("n");


}


}


void main(void)


{


int m;


int i,j;


int matr[N][M];


int r,t;


do{


m=M;


clrscr();


printf("Введите массивn");


for(i=0;i<N;i++)


for(j=0;j<m;j++) {


scanf("%d",&matr[i][j]);


}


clrscr();


printf(" массивn");


Print(matr,m);


for(j=0;j<m;j++)


{


if(matr[0][j]>matr[N-1][j])


{


for(t=0;t<N;t++)


for(r=j;r<m-1;r++)


matr[t][r]=matr[t][r+1];


--m;


--j;


}


}


printf("а) .Удалить все столбцы, а которых первый элемент больше последнего.n");


Print(matr,m);


for(j=0;j<3;j++)


for(i=0;i<N;i++)


{


matr[i][j]*=matr[i][j];


}


printf("б). Заменить все элементы первых трёх столбцов на их квадраты.n");


Print(matr,m);


printf("nn1 - повторить");


}while(getch()=='1');


}


Блок
-схема
:



Функция Print




Тестирование:


массив


1 2 3 4 5 6 7


-8 0 5 5 4 4 5


4 5 5 5 5 5 5


5 5 5 -7 5 5 5


9 4 4 5 0 5 3


5 6 3 4 5 4 5


6 7 8 9 0 4 8


-4 5 9 0 9 9 0


а) .Удалить все столбцы, в которых первый элемент больше последнего.


2 3 5 6


0 5 4 4


5 5 5 5


5 5 5 5


4 4 0 5


6 3 5 4


7 8 0 4


5 9 9 9


б). Заменить все элементы первых трёх столбцов на их квадраты.


4 9 25 6


0 25 16 4


25 25 25 5


25 25 25 5


16 16 0 5


36 9 25 4


49 64 0 4


25 81 81 9

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Работа над массивами с помощью языка С 2

Слов:720
Символов:7437
Размер:14.53 Кб.