Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
1

Написать функцию, вычисляющую среднее арифметическое между диагоналями матрицы

01.03.2013, 19:58. Просмотров 1322. Ответов 23
Метки нет (Все метки)

Заполнить двухмерный массив случайными целыми числами (10Х10) от 1 до 255 и вывести его на экран и написать функцию, вычисляющую среднее между диагоналями.
Помогите пожалуйста составить программу на С. За ранее благодарен
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 19:58
Ответы с готовыми решениями:

Написать функцию, вычисляющую среднее арифметическое элементов массива
Доброго вечера, господа. Есть несколько заданий. 1) Написать две функции для вывода на экран...

Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел
Если есть какие то недочеты, то напишите в комментариях. #include <stdio.h> #include <stdlib.h>...

Описать процедуру Mean, вычисляющую среднее арифметическое
3. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2...

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

Написать функцию, находящую среднее арифметическое элементов матрицы
2. Написать функцию, находящую среднее арифметическое элементов матрицы.

23
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
01.03.2013, 22:33 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

если я правильно понял условие
вычисляющую среднее между диагоналями
т.е. среднее арифметическое, то программа ниже
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
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
void FillArray(void);
void DisplayArray(void);
double SrednArifm(void);
 
int mas[10][10];
int m=10;
 
main()
{
    FillArray();
    DisplayArray();
   printf("\n");
   printf("%6.2f\n",SrednArifm());
   getchar();
    return 0;
}
 
/* zapolnim massiv randomno */
void FillArray(void)
{
    int i,j;
    srand((unsigned)time(NULL)); /* ustanovka generatora sluch chisel */
    for(j=0; j<m; ++j)
    for(i=0; i<m; ++i)
      mas[j][i] = 1 + rand() % 255;
}
 
/* vivo massiva na displej */
void DisplayArray(void)
{
    int i,t;
    puts("");   /* nachalo novoj stroki */
  for(t=0; t<m; ++t)
  {
    for(i=0; i<m; ++i)
      printf("%4d ", mas[t][i]);
    printf("\n");
  }
}
 
/*srednee arifm diagonalej*/
double SrednArifm(void)
{
    int j;
   double sredn=0;
   for(j=0; j<m; ++j)
    sredn=sredn + mas[j][j] + mas[j][m-j];
   sredn=sredn/m/2;
   return sredn;
}
2
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 15:48  [ТС] 3
А вы не смогли бы посмотреть еще такую программу, с меня вознаграждение.
Имеется матрица M*N элементов. Заполнить матрицу случайными числами от 0 до 255. Написать функцию поиска максимума на диагональном кресте.
Проиллюстрировать.

Добавлено через 12 минут
И огромное спасибо за массив.
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 15:55 4
посмотрю
0
03.03.2013, 15:55
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 16:01  [ТС] 5
Спасибо
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 16:34 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
void FillArray(void);
void DisplayArray(void);
int MaxDiagKrest(void);
 
int m=5,n=7;
int mas[100][100];
 
main()
{
    FillArray();
    DisplayArray();
   printf("\n");
   printf("%d\n",MaxDiagKrest());
   getchar();
    return 0;
}
 
/* zapolnim massiv randomno */
void FillArray(void)
{
    int i,j;
    srand((unsigned)time(NULL)); /* ustanovka generatora sluch chisel */
    for(j=0; j<m; ++j)
    for(i=0; i<n; ++i)
      mas[j][i] = 1 + rand() % 255;
}
 
/* vivo massiva na displej */
void DisplayArray(void)
{
    int i,t;
    puts("");   /* nachalo novoj stroki */
  for(t=0; t<m; ++t)
  {
    for(i=0; i<n; ++i)
      printf("%4d ", mas[t][i]);
    printf("\n");
  }
}
 
/*poisk max elementa na diagonalnom kreste*/
int MaxDiagKrest(void)
{
    int j,max=0;
   for(j=0; j<m; ++j)
   {
    if (mas[j][j] > max)
        max = mas[j][j];
    if (mas[j][m-j-1] > max)
        max = mas[j][m-j-1];
//      printf("%d  %d\n",mas[j][j],mas[j][m-j-1]); //  diagonalnom krest
   }
   return max;
}
Если раскоментировать строку
C
1
//      printf("%d  %d\n",mas[j][j],mas[j][m-j-1]); //  diagonalnom krest
то можно видеть список элементов которые сравниваются.
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 16:47  [ТС] 7
А как это можно проиллюстрировать?
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 17:02 8
Что именно илюстрировать?
Главный диагональный крест или процесс сравнения?
Я чесно говоря не понимаю суть вопроса.

Добавлено через 2 минуты
матрица выводится на экран. Может диагонали выделить другим цветом?
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 17:07  [ТС] 9
Главный крест диагонали
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 17:16 10
Цитата Сообщение от RazerG26 Посмотреть сообщение
Главный крест диагонали
Походу я не правильно понял условие. Можно по подробнее на примере матрицы 3х4, перечислить элементы, которые к ниму относятся.
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 17:37  [ТС] 11
Выдали именно такое условие, а что вы не так записали в программе? вроде максимум на диагонали находит.

Добавлено через 2 минуты
Имеется матрица M*N элементов. Заполнить матрицу случайными числами от 0 до 255. Написать функцию поиска максимума на диагональном кресте.
Проиллюстрировать.

Вот это задание. Вы вроде все правильно сделали.
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 17:52 12
Тогда уточните, что именно проилюстрировать.
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 18:01  [ТС] 13
Как мне объяснили нужно проиллюстрировать в окне главную диагональ с максимумом.

Добавлено через 3 минуты
точнее на диагональном кресте
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 19:08 14
тогда наверное надо выделить цветом диагональный крест и отдельно максимум.
Попробую поискать решение.

Добавлено через 46 минут
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
60
61
62
63
64
65
66
67
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <conio.h>
 
void FillArray(void);
void DisplayArray(void);
int MaxDiagKrest(void);
 
int m=5,n=7;
int mas[100][100];
 
main()
{
    FillArray();
   DisplayArray();
   getchar();
    return 0;
}
 
/* zapolnim massiv randomno */
void FillArray(void)
{
    int i,j;
    srand((unsigned)time(NULL)); /* ustanovka generatora sluch chisel */
    for(j=0; j<m; ++j)
    for(i=0; i<n; ++i)
      mas[j][i] = 1 + rand() % 255;
}
 
/* vivo massiva na displej v cvete*/
void DisplayArray(void)
{
    int i,t;
    puts("");   /* nachalo novoj stroki */
  for(t=0; t<m; ++t)
  {
    for(i=0; i<n; ++i)
      {
         if ((t==i) || (i==(m-t-1)))
            {
                textcolor(25);
               if (mas[t][i] == MaxDiagKrest())
                textcolor(10);
            }
         else
            textcolor(15);
        cprintf("%4d ", mas[t][i]);
      }
    printf("\n");
  }
}
 
/*poisk max elementa na diagonalnom kreste*/
int MaxDiagKrest(void)
{
    int j,max=0;
   for(j=0; j<m; ++j)
   {
    if (mas[j][j] > max)
        max = mas[j][j];
    if (mas[j][m-j-1] > max)
        max = mas[j][m-j-1];
//      printf("%d  %d\n",mas[j][j],mas[j][m-j-1]); //  diagonalnom krest
   }
   return max;
}
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 19:12  [ТС] 15
выбивает ошибки.
g++.exe -x c++ -c C:\Users\Razer\Desktop\A1FE~1\_B967~1 -o C:\Users\Razer\Desktop\A1FE~1\_B967~1.o -Wall -fpermissive
C:\Users\Razer\Desktop\A1FE~1\_B967~1:11: warning: ANSI C++ forbids declaration `main' with no type
C:\Users\Razer\Desktop\A1FE~1\_B967~1: In function `void DisplayArray()':
C:\Users\Razer\Desktop\A1FE~1\_B967~1:37: warning: implicit declaration of function `int textcolor(...)'
C:\Users\Razer\Desktop\A1FE~1\_B967~1:43: warning: implicit declaration of function `int cprintf(...)'
g++.exe C:\Users\Razer\Desktop\A1FE~1\_B967~1.o -o C:\Users\Razer\Desktop\A1FE~1\_B967~1.exe -Wall -fpermissive
C:\Users\Razer\Desktop\A1FE~1\_B967~1.o(.text+0x219):_B967~1: undefined reference to `textcolor'
C:\Users\Razer\Desktop\A1FE~1\_B967~1.o(.text+0x25e):_B967~1: undefined reference to `textcolor'
C:\Users\Razer\Desktop\A1FE~1\_B967~1.o(.text+0x26d):_B967~1: undefined reference to `textcolor'
C:\Users\Razer\Desktop\A1FE~1\_B967~1.o(.text+0x2ac):_B967~1: undefined reference to `cprintf'
Failure
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 19:23 16
Программа написана на борланд си . Ниже результат выполнения программы
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 19:44  [ТС] 17
void FillArray(void)
void DisplayArray(void);
А вот эти строки не из с++?
Просто компилятор GCC ругается.
0
Valery__
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
03.03.2013, 19:56 18
К сожалению я еще не добрался до С++. Пока изучаю только С.
0
RazerG26
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 23
03.03.2013, 22:07  [ТС] 19
А есть вариант вывести только диагональный крест. А то вариант с выделение цветом в GCC не работает.
0
-=ЮрА=-
07.03.2013, 10:00     Написать функцию, вычисляющую среднее арифметическое между диагоналями матрицы
  #20

Не по теме:

RazerG26, могу показать покраску для студии, не билдера

0
07.03.2013, 10:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2013, 10:00
Привет! Вот еще темы с ответами:

Перегрузить функцию, вычисляющую среднее арифметическое
Перегрузить функцию MeanА(X, Y), вычисляющую среднее арифметическое AMean = (X+Y)/2 двух...

Написать функцию, находящую среднее арифметическое каждого столбца матрицы.
Напишите пожалуйста функцию, находящую среднее арифметическое каждого столбца матрицы. СПАСИБО!

Написать функцию, находящую среднее арифметическое каждого столбца матрицы.
Написать функцию, находящую среднее арифметическое каждого столбца матрицы.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru