Форум программистов, компьютерный форум CyberForum.ru

Проверьте что работает не правильно (задать значения вещественным элементам матриц) - C++

Восстановить пароль Регистрация
 
colix
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 9
01.06.2013, 14:09     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #1
Вот задание:

Задать значения вещественным элементам матриц
А = {аij} и Q = {qij}, где i = 0, 1, 2,..., 6; j = 0, 1, 2,..., 4
и сформировать массивы B и R, состоящие из минимальных элементов столбцов матриц A и Q соответственно.


Суть в том, что не правильно создается новый массив, скорей всего проблема в условии создания нового массива, подскажите кто что сможет.
Вот код:

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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <locale>
#include <time.h>
int vacya(int a[7][5], int b[7][5]);
int main()
{
    int i,j;
    int f[7][5],k[7][5];
    srand(unsigned(time(NULL)));
    setlocale(0,"rus");
    //Задаем рандомные значения массива
    for(i=0;i<7;i++)
    for(j=0;j<5;j++)
    {
        f[i][j]=(rand()%10-10);
        k[i][j]=(rand()%40-25);
    }
 for(i=0;i<7;i++)
 {
 for(j=0;j<5;j++)
 {  
     printf("%3d",f[i][j]);
 }
 printf("\n");
 }
 printf("\n");
//Выводим первую рандомную матрицу
 for(i=0;i<7;i++)
 {
 for(j=0;j<5;j++)
 {  
     printf("%3d",k[i][j]);
 }
 printf("\n");
 }
 printf("\n");
//Выводим вторую рандомную матрицу
vacya(f,k);
getchar();
getchar();
return 0;
}
int vacya(int a[7][5], int b[7][5])
{
    int i,j,h=0,l[5],p[5],s=0; //h-это нулевой элемент новой матрицы
    
    for(j=0;j<5;j++)
    {
    for(i=0;i<7;i++)
    {
        if(h>=a[j][i])
            h=a[j][i];
    }
    l[j]=h;
    }
    for(j=0;j<5;j++)
    {
        printf("%3d",l[j]);
    }
    printf("\n");
getchar();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2013, 14:09     Проверьте что работает не правильно (задать значения вещественным элементам матриц)
Посмотрите здесь:

есть график, проверьте правильно ли программа? и подскажите как задать в программе интервал? C++
Проверьте задачу правильно решена ли C++
C++ Не правильно работает не подскажите что не так?
Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] C++
Задать значения вещественным элементам массивов и вычислить C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,717
Записей в блоге: 3
01.06.2013, 19:35     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <conio.h>
#include <stdio.h>
#include <locale>
#include <time.h>
void vacya(int *a, int maxim);
int main()
{
    int i,j;
    int f[7][5],k[7][5];
    srand(unsigned(time(NULL)));
    setlocale(0,"rus");
   //Задаем рандомные значения массивов\n
    int MaxF=10;
    int MaxK=40;
    for(i=0;i<7;i++)
    for(j=0;j<5;j++)
    {
        f[i][j]=(rand()%MaxF+1);
        k[i][j]=(rand()%MaxK+1);//зачем если будет переписан?
    }
  printf("Выводим рандомную матрицу f\n");
 for(i=0;i<7;i++)
 {
 for(j=0;j<5;j++)
 {  
     printf(" %3d",f[i][j]);
 }
 printf("\n");
 }
 printf("\n\n");
 printf("Максимальные значения в столбцах f\n");
 vacya(&f[0][0],MaxF);//k зачем передаёте, в функции он не используется
  printf("Выводим рандомную матрицу k\n");
 for(i=0;i<7;i++)
 {
 for(j=0;j<5;j++)
 {  
     printf(" %3d",k[i][j]);
 }
 printf("\n");
 }
 printf("\n\n");
 printf("Максимальные значения в столбцах k\n");
 vacya(&k[0][0],MaxK);
return 0;
}
void vacya(int *a, int maks)//
{
    int i=0,j=0, h; //h-это нулевой элемент новой матрицы
int l[5]={0}; 
 
    for(i=0;i<5;i++)
    {
h=maks;//устанавливаем на максимально возможный
    for(j=0;j<7;j++)
    {
if(h>a[i+j*5])
            h=a[i+j*5];       
     }
 
    l[i]=h;//макс в i-м столбце
    }
    for(i=0;i<5;i++)
    {
        printf("%3d",l[i]);
    }
    printf("\nНажмите Ввод \n");
getchar();
}
colix
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 9
02.06.2013, 11:02  [ТС]     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #3
Все сработало, очень благодарен.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1787
Регистрация: 18.12.2011
Сообщений: 14,197
Завершенные тесты: 1
02.06.2013, 12:42     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #4
Можно оставить как было,
только поменять вот этот кусок
C++
1
2
3
4
5
6
7
8
9
10
    for(j=0;j<5;j++)
    {
        h=a[0][j];
        for(i=1;i<7;i++)
        {
            if(h>=a[i][j])
                h=a[i][j];
        }
        l[j]=h;
    }
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,717
Записей в блоге: 3
02.06.2013, 14:20     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #5
Да, - так лучше, zss. Можно устанавливать h на начало столбца. Погорячился с лишним параметром.
Yandex
Объявления
02.06.2013, 14:20     Проверьте что работает не правильно (задать значения вещественным элементам матриц)
Ответ Создать тему
Опции темы

Текущее время: 16:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru