Контрольная работа

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

Работа добавлена на сайт bukvasha.net: 2014-11-19

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.2.2025


Задание 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("\n\n1 - повторить");
 }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("\n\n1 - повторить");
 }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("\n\n1 - повторить");
 }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

1. Реферат на тему Lucky Luciano Essay Research Paper LUCIANO S
2. Реферат ИВ Сталин глазами современников и очевидцев
3. Реферат Развитие наукоемкого рынка
4. Реферат Движение декабристов 3
5. Курсовая на тему Разработка оптимального технологического процесса производства детали Вал
6. Реферат Devotion And Commitment Essay Research Paper Devotion
7. Реферат на тему Language Essay Research Paper Language is thought
8. Реферат на тему Rose For Emily Essay Research Paper Erick
9. Книга Машины, которые говорят и слушают
10. Отчет по практике на тему Характеристика деятельности автотехцентра ОАО Агрохолодмаш