Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/30: Рейтинг темы: голосов - 30, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 9
1

Дан двумерный массив n*m Найти среднее арифметическое S его элементов и заменить этим числом элементы второй строки

06.01.2010, 20:06. Показов 5475. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается написать правильно программу.Дан двумерный массив А размером m*n. Найти среднее арифметическое S его элементов и заменить этим числом элементы 2-й строки.Оформить в виде функций. Что делать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2010, 20:06
Ответы с готовыми решениями:

Дан двумерный массив, вычислить произведение отрицательных элементов, заменить этим числом элементы второй строки матрицы
написала программу, считает только произведение, надо оформить в виде функции

Дан двумерный массив. Найти его среднее арифметическое лежащих на главной диагонали
Дан двумерный массив. Найти его среднее арифметическое лежащих на главной диагонали. Помогите...

Дан двумерный массив. Найти среднее арифметическое k-й строки массива
Дан двумерный массив. Найти среднее арифметическое k-й строки массива Давайте темам осмысленные...

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

33
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
06.01.2010, 20:36 2
Цитата Сообщение от Катерифка)) Посмотреть сообщение
Не получается написать правильно программу.Дан двумерный массив А размером m*n. Найти среднее арифметическое S его элементов и заменить этим числом элементы 2-й строки.Оформить в виде функций. Что делать?
1. показать что получается
2. подумать
0
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
06.01.2010, 21:18 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <stdlib.h>
#include <time.h>
#define N 5
int i,j;
void fun(int A[N][N],int i,int j,int srar);
int main()
{
srand((unsigned)time(0));
  static int A[N][N],srar;
cout<<"Matrix: "<<endl;
  for (i=0;i<N;i++)
  {
    for (j=0;j<N;j++)
    {
        A[i][j]=rand()%10;
        cout<<A[i][j]<<" ";
        srar+=A[i][j];
    }
    cout<<endl;
  }
  srar/=N*N;
  cout<<"\nSrednee arifm: "<<srar<<endl;
  cout<<"\nItog:\n";
  fun(A,i,j,srar);
}
void fun(int A[N][N],int i,int j, int srar)
{
  for (i=0;i<N;i++)
  {
    for (j=0;j<N;j++)
    {
       if (i!=1)
       cout<<A[i][j]<<" ";
       else
       cout<<srar<<" ";
    }
    cout<<endl;
  }
}
0
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 9
11.01.2010, 23:06  [ТС] 4
кто может это решить?а то у меня не получается. Дан двумерный массив А размером n*m. айти среднее арифметическое S его элементов и заменить этим числом элементы 2-й строки.Оформить в виде функций.
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
12.01.2010, 00:01 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#define n 6
#define m 6
  
void main()
  {
   randomize();
   clrscr();
   int i,j,temp;
   float suma;
   float a[n][m];
 
   cout<<"\nmasiv:\n";
   for(i=0;i<n;i++)
    {
     for(j=0;j<m;j++)
      {
     a[i][j]=random(8)-4;
     cout<<a[i][j]<<" ";
         suma=suma+a[i][j];
      }
     cout<<"\n";
    }
 
    suma=suma/(n*m);
    
    for(j=0;j<n;j++)
     {
      a[1][j] = suma;
     }
     
     for(i=0;i<n;i++)
    {
     for(j=0;j<m;j++)
      {
         
     cout<<a[i][j]<<" ";
         
      }
     cout<<"\n";
    }
 getch();
 }
1
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 9
21.01.2010, 14:42  [ТС] 6
не знаю как это решить, считает неправильно, оформить в виде функции
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
21.01.2010, 15:16 7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
/* возвращает округлённое до целого среднее арифметическое значений элементов матрицы */  
int average(int **matr, int rows, int cols){
    int i, j, sum = 0;
    for ( i = 0; i < rows; ++i )
        for ( j = 0; j < cols; ++j )
            sum += matr[i][j];
    return (int)((double)sum / (double)(rows * cols) + 0.5);
}
 
/* устанавливает значения одномерного массива */
void setArrValues(int *arr, int cnt, int val){
    while ( cnt-- )
        *arr++ = val;
}
 
#define ROWS 5
#define COLS 4
int main(void){
    int **matr, i, j, avg;
    
    srand(time(NULL));
    if ( ( matr = (int**)calloc(ROWS, sizeof(int*)) ) == NULL )
        exit(1);
    for ( i = 0; i < ROWS; ++i )
        if ( ( matr[i] = (int*)calloc(COLS, sizeof(int)) ) == NULL )
            exit(1);
    printf("\nBefor:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLS; ++j )
            printf( ( j < COLS - 1 ) ? "%02d " : "%02d\n", ( matr[i][j] = rand() % 100 ));
    printf("\nAverage value: %d\n", ( avg = average(matr, ROWS, COLS)));
    setArrValues(matr[1], COLS, avg);
    printf("\nAfter:\n");
    for ( i = 0; i < ROWS; ++i )
        for ( j = 0; j < COLS; ++j )
            printf( ( j < COLS - 1 ) ? "%02d " : "%02d\n", matr[i][j]);
            
    
    for ( i = 0; i < ROWS; ++i )
        free(matr[i]);
    free(matr);
    exit(0);
}
1
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 9
21.01.2010, 16:34  [ТС] 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream.h>
#include<conio.h>
#include<math.h>
int const n=3,m=4;
void InArray(int [n][m]);
void PrintArray(int [n][m]);
void ChangeArray(int [n][m]);
void main()
{
clrscr();
int X[n][m];
InArray(X);
PrintArray(X);
ChangeArray(X);
int P=1;
void InArray(int X[n][m])
{
cout<<"input massiv X"<<n<<"*"<<m<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cin>>X[i][j];
cout<<endl;
}
}
void PrintArray(int X[n][m])
{
for(i=0;i<0;i++)
{
for(int j=0;j<0;j++)
if(X[i][j]<0)
{
cout<<X[i][j];
cout<<endl;
}
}
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
if(X[i][j]<0)
{
P=P*X[i][j];
}
}
}
cout<<"P="<<P;
void ChangeArray(int X[n][m])
{
int k=1;
for(int j=0;j<m;j++)
{
X[k][j]=P;
}
}
cout<<X[i][j]<<" ";
cout<<endl;
cout<<"\n";
getch();
}
Вот эта программа правильно не работает.Что делать?
0
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 9
21.01.2010, 16:36  [ТС] 9
Я написала вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream.h>
#include<math.h>
#include<conio.h>
int const n=3,m=4;
void InArray(int X[n][m])
void ChangeArray()
void main()
{
clrscr();
int X[n][m];
InArray(X);
PrintArray(X);
ChangeArray(X);
float S=0,P=1;
void InArray(int X[n][m])
{
cout<<"vvod massiv iz"<<n<<"*"<<m<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cin>>X[i][j];
cout<<endl;
}
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
S=S+X[i][j];
cout<<"\n";
}
P=S/(n*m);
void ChangeArray(X[n][m])
{
for(int j=0;j<n;j++)
{
X[1][j]=P;
}
{for(j=0;j<n;j++)
{
cout<<X[i][j]<<" ";
}
}
cout<<"\n";
getch();
}
}
А она правильно не работает, и когда ее с функциями сделала, ошибку 1 пишет в changeArray
что делать???
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 17:42 10
Цитата Сообщение от Катерифка)) Посмотреть сообщение
void InArray(int X[n][m])
void ChangeArray()
а где в конце ";" после етих строк?

и вроед должно быть так
C
1
void ChangeArray(int X[n][m]);
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.01.2010, 21:08 11
Дан двумерный массив n*m Найти среднее арифметическое S его элементов и заменить этим числом элементы второй строки.Оформить как функцию
Может кто скажет, может ли это пригодится в нормальной программе?
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
21.01.2010, 21:14 12
Genius Ignat, пригодится может все. У таких заданий есть как минимум один плюс - заставляют думать, разрабатывают мышление.
Просьба больше не оффтопить
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.01.2010, 21:29 13
M128K145:
Больше не буду.

Добавлено через 1 минуту
Сейчас подумаем над задачей.
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 21:39 14
а что тут думать?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void change(int **a,int n,int m)
{
int i,j,suma = 0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
suma+=a[i][j];
}
}
suma=suma / (n*m);
i = 1;
for(j=0;j<m;j++)
{
a[i][j]=suma;
}
}
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.01.2010, 21:40 15
Radjuk:
А боюсь юзер будет требователен к твоей программе.
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 21:48 16
ну я же не буду писать сюда полную програму ..... я написал функцию которая считает среднее значение
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.01.2010, 21:57 17
Я бы тебе дал ссылку на страницу где "неохото" писать полную программу.

Добавлено через 1 минуту
Вот кстати полный код:
Надеюсь юзер ни кого на спасибо, не обделит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream.h>
void transform(int *matrix,int height,int weight); 
 
void main(){
const int Height = 3;
const int Weight = 3;
int matrix[Height][Weight] = {0};
for(int h=0;h<Height;h++){
        for(int g=0;g<Weight;g++)
    {
    cout<<"STR"<<' '<<h<<' '<<"STB"<<' '<<g<<' ';cin>>matrix[h][g];
}
cout<<'\n';
}
 
cout<<'\n';
transform(&matrix[0][0],Height,Weight);
 
 
for(int i=0;i<Height;i++){
    for(int g=0;g<Weight;g++){
    
cout<<' '<<matrix[i][g];
}
cout<<'\n';
}
 
 
cout<<'\n';
}
 
void transform(int *matrix,int height,int weight){
int S(0);
int sum(0);
for(int d=0;d<height;d++)
for(int f=0;f<weight;f++)sum+=matrix[d*weight+f];
S = sum/(height*weight);
int i=1;
for(int j=0;j<weight;j++)matrix[i*weight+j]=S;
 
}
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 21:58 18
ыыыы.... не понял?

извини конешно.... но вроде у нее почти правильный код....ошибки толкьо в обявление прототипов функции

Добавлено через 1 минуту
о ну вот и код ))))
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.01.2010, 21:59 19
Наверное матрица должна иметь тип double или float.
0
135 / 69 / 12
Регистрация: 10.10.2009
Сообщений: 187
21.01.2010, 22:02 20
ну думаю может быть и инт ... но задать еще
C
1
a[i][j]=rand%20 - 10;
Добавлено через 22 секунды
что бы веселей было)
0
21.01.2010, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2010, 22:02
Помогаю со студенческими работами здесь

Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями
Найти среднее арифметическое по столбцам произвольной матрицы. Столбец с наибольшим средним...

Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
float v ; int i,j; int kk; float sr; float sum=0; for(int i=0; i&lt;kk;i=i+1) cout&lt;&lt;endl&lt;&lt;&quot;v=&quot;;...

Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов ....

Ввести по строкам с клавиатуры двумерный массив и вычислить среднее арифметическое его элементов
Ребят, надо написать программу, которая вводит по строкам с клавиатуры двумерный массив и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru