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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
colix
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 9
#1

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

01.06.2013, 14:09. Просмотров 601. Ответов 4
Метки нет (Все метки)

Вот задание:

Задать значения вещественным элементам матриц
А = {а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++ подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
C++ Рапределение идндексов по элементам, независимо от значения переменной
C++ Проверьте пожалуйста, правильно ли я сделал задание
Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] C++
Задать значения вещественным элементам массивов и вычислить C++
C++ Задать значения целочисленным элементам массивов и вычислить
C++ Сложение двух одномерных матриц поэлементно (проверьте код)
Задать значения скрытым элементам класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6346 / 2993 / 294
Регистрация: 04.12.2011
Сообщений: 8,027
Записей в блоге: 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
6112 / 5715 / 1849
Регистрация: 18.12.2011
Сообщений: 14,600
Завершенные тесты: 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
6346 / 2993 / 294
Регистрация: 04.12.2011
Сообщений: 8,027
Записей в блоге: 3
02.06.2013, 14:20     Проверьте что работает не правильно (задать значения вещественным элементам матриц) #5
Да, - так лучше, zss. Можно устанавливать h на начало столбца. Погорячился с лишним параметром.
Yandex
Объявления
02.06.2013, 14:20     Проверьте что работает не правильно (задать значения вещественным элементам матриц)
Ответ Создать тему
Опции темы

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