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

Определить величину Y, как количество отрицательных элементов первой строки матрицы - C++

Восстановить пароль Регистрация
 
Кетрин
 Аватар для Кетрин
4 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 31
24.06.2012, 15:50     Определить величину Y, как количество отрицательных элементов первой строки матрицы #1
Дана матрица А(5х5). Определить массив Х из 5 элементов, каждый из которых равен произведению элементов соответствующего столбца, расположенных за первым в нем отрицательным элементом. Определить величину Y, как количество отрицательных элементов первой строки матрицы, имеющих нечетные номера столбцов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 15:50     Определить величину Y, как количество отрицательных элементов первой строки матрицы
Посмотрите здесь:

Определить произведение отрицательных элементов матрицы и их количество C++
C++ Определить количество отрицательных элементов, расположенных вы-ше главной диагонали матрицы.
Определить номер первой строки матрицы, в которой максимальное количество положительных элементов C++
Вывести номер первой строки матрицы, содержащей равное количество положительных и отрицательных элементов C++
C++ Вывести номер первой строки матрицы, содержащей равное количество положительных и отрицательных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 15:54     Определить величину Y, как количество отрицательных элементов первой строки матрицы #2
Кетрин, И в чем сложность сего задания?
Где ваши попытки решить?
За вас никто ничего делать не будет.
Выкладывайте свой код.
Кетрин
 Аватар для Кетрин
4 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 31
24.06.2012, 15:59  [ТС]     Определить величину Y, как количество отрицательных элементов первой строки матрицы #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
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#define n 5
void input_matr(int a[n][n])
{
int i, j;
FILE *fp;//указатель на файловую структуру
fp=fopen("in.txt", "r"); //открываем файл in.txt
//для чтения
/*файл in.txt должен существовать в текущем каталоге и содержать 25 элементов матрицы а. Далее проверяется корректность открытия файла*/
if(fp)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
fscanf(fp, "%d", &a[i][j]);//считываем
//элементы матрицы
fclose(fp);}
}
void input_matrsam( int a[n][n])
{
int i,j;
printf("Введите элементы матрицы А: \n");
for (i=0;i<n;i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
 
 
int *mas_x(int (*a)[n], int *x,
void (*pfunc)(int [n][n]))// функция вычисления элементов массива x
{
int s=1,i,j,k,s1=0; // Вызов через указатель одной из двух функций ввода элементов a:
pfunc(a);
for(j=0;j<n;j++)
for (i=0;i<n;i++)
{
 
if(a[i][j]<0 && s1<=1)
{s1+=1;
k=i;}
}
for(i=k+1;i<n;i++)
{
s*=a[i][j];
x[j]=s;
}
//for (i=0;i<n;i++)
//x[i]=s;
return x;
}
 
 
// Функция вывода на экран элементов матрицы a и массива x:
void output(const int x[], const int a[][n] )
{
int i,j;
printf("Матрица А:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("Массив Х:\n");
for (i=0;i<n;i++)
printf("%5d",x[i]);
printf("\n");
}
int main()
{
setlocale(LC_CTYPE,"");
int a[n][n], x[n], c;
void (*pfunc)(int [n][n]);
do
{
printf("Ввод матрицы:\n1 - из файла\n2 - \
с клавиатуры\n");
scanf("%d",&c);
}
while (c!=1 && c!=2);
// Присваивание указателю адреса одной их функций:
switch (c)
{
case 1: pfunc=&input_matr;
break;
case 2: pfunc=&input_matrsam;
break;
}
output(mas_x(a,x,pfunc),a);
_getch();
}


проблема в формировании массива х
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:02     Определить величину Y, как количество отрицательных элементов первой строки матрицы #4
Кетрин, какого рода проблема?
Кетрин
 Аватар для Кетрин
4 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 31
24.06.2012, 16:07  [ТС]     Определить величину Y, как количество отрицательных элементов первой строки матрицы #5
массив х неверно формируется.. а точнее вообще не выводит его значение. не могу понять в чем проблема

Добавлено через 1 минуту
если не сложно,посмотрите сам процесс формирования массива х.. может вы найдете ошибку..
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:09     Определить величину Y, как количество отрицательных элементов первой строки матрицы #6
Кетрин, Я помогаю с воспитательным эффектом). Возможно проблема в самом выводе?)
у вас так:
C++
1
printf("%5d",x[i]);
так надо:
C++
1
printf("%.5d",x[i]);
и если вам неудобно использовать printf используйте cout
Кетрин
 Аватар для Кетрин
4 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 31
24.06.2012, 16:12  [ТС]     Определить величину Y, как количество отрицательных элементов первой строки матрицы #7
исправила,но основная проблема от этого не решилась..

Добавлено через 1 минуту
проблема не в выводе. пробовала изменять функцию вычисления массива х на более простую и тогд все выводил правильно. тут проблема именно в самом формировании массива х
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:15     Определить величину Y, как количество отрицательных элементов первой строки матрицы #8
Кетрин, У вас не изменяется переменная j сделайте вложенный цикл.
C++
1
2
3
4
5
6
for(i=k+1;i<n;i++){
for(j=k+1;j<n;j++){
   s*=a[i][j];
   x[j]=s;
}
}
примерно так.

сбасибку тыц
lamerr
9 / 9 / 1
Регистрация: 05.04.2012
Сообщений: 26
24.06.2012, 16:18     Определить величину Y, как количество отрицательных элементов первой строки матрицы #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
int *mas_x(int (*a)[n], int *x,
void (*pfunc)(int [n][n]))// функция вычисления элементов массива x
{
int s=1,i,j,k,s1=0; // Вызов через указатель одной из двух функций ввода элементов a:
pfunc(a);
for(j=0;j<n;j++)
{
    for (i=0;i<n;i++)
    {
 
        if(a[i][j]<0 && s1<=1)
        {    s1+=1;
             k=i;}
    }
    for(i=k+1;i<n;i++)
    {
        s*=a[i][j];
        x[j]=s;
    }
}
//for (i=0;i<n;i++)
//x[i]=s;
return x;
}
у тебя во внешнем цикле выполнялся только первый внутренний
Кетрин
 Аватар для Кетрин
4 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 31
24.06.2012, 16:21  [ТС]     Определить величину Y, как количество отрицательных элементов первой строки матрицы #10
спасибку тыцкнула) тольк мне j не надо изменять от к))
мы выбрали первый столбец и уже в нем перебираем i с первого отрицат элемента до конца.. и и щем их произведение.. добавила перебор j=0;j<n;j++ все равно не то что то

Добавлено через 2 минуты
увы,все равно,не то что-то
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:24     Определить величину Y, как количество отрицательных элементов первой строки матрицы #11
Кетрин, проверте индексацию. Вы должны точно представить что вам нужно. если вы просматриваете ТОЛЬКО ОДИН столбец, то просматривайте его задав например x[0][i];если вам нужен только первый столбец)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 16:32     Определить величину Y, как количество отрицательных элементов первой строки матрицы
Еще ссылки по теме:

C++ Вывести номер первой строки матрицы, содержащей равное количество положительных и отрицательных элементов
Вывести номер первой(последней) строки(столбца), содержащего равное количество положительных и отрицательных элементов C++
Рекурсивно определить количество отрицательных элементов первой строки матрицы C++

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

Или воспользуйтесь поиском по форуму:
lamerr
9 / 9 / 1
Регистрация: 05.04.2012
Сообщений: 26
24.06.2012, 16:32     Определить величину Y, как количество отрицательных элементов первой строки матрицы #12
Вроде так должно быть в функции, формирующей массив x

C++
1
2
3
4
5
6
7
8
9
10
11
12
for (j = 0; j != 5; ++i) {
    for (i = 0; i != 5; ++j) {
        if (!s1 && a[i][j] < 0) {
            s1 = 1;
            x[j] = a[i][j];
        }
        else
            x[j] *= a[j][i];
    }
    if (!s1) // если не было отрицательных элементов в столбце
        x[i] = 0;
}
Yandex
Объявления
24.06.2012, 16:32     Определить величину Y, как количество отрицательных элементов первой строки матрицы
Ответ Создать тему
Опции темы

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