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

Найти максимальное отрицательное число строки, у которой произведение элементов больше 200

01.12.2011, 18:23. Показов 1280. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти максимальное отрицательное число строки, у которой произведение элементов больше 200.
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
#include<stdio.h>
#include<conio.h>
#define n 5
#define m 5
#pragma argsused
int main(int argc, char* argv[])
{int a[n][m], i,j;
printf("vvedite element \n");
for(i=0;i<n;i++)
for(j=0;j<m;j++) 
canf("%i",&a[i][j]);
clrscr();
printf("\nmassiv \n");
for(i=0;i<n;i++)
{ for(j=0;j<m;j++) printf(" %i ",a[i][j]);
  printf("\n");}
printf("\n");
int ks=0;
for(i=0;i<n;i++)
  {
    int p=1;
     for(j=0;j<m;j++)
      p*=a[i][j];
        if(p>200)
         {
           ks++;
           int max=-1000;
               for(j=0;j<m;j++)
                   {
                     if(a[i][j]>max && a[i][j]<0) max=a[i][j] ;
                       printf("\n max[%i]=%i ",i,max);
                        if (ks==0) printf("\n net takogo");  } } }
getch();
return 0;
}
помогите исправить (
как-то неправильно оно выводит результат (
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 18:23
Ответы с готовыми решениями:

Найти минимальное положительное число и максимальное отрицательное число среди заданных
Дано N действительных случайных чисел в диапазоне от -100 до 100. Найти минимальное положительное...

Найти номер строки, в которой находится максимальное количество минимальных элементов строки
Найти номер строки, в которой находится максимальное количество минимальных элементов строки ...

Найти максимальное произведение элементов массива, отстоящих друг от друга на расстоянии больше или равном 8
Задача егэ с4 ,нужно решить с минимальной сложность ,задача такова: у нас дан массив , длинной...

Найти максимальное отрицательное число
Значит у меня сейчас модуль не пойму как решить данную задачу: Даны три числа a, b, c. Найти...

9
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
01.12.2011, 19:11 2
Цитата Сообщение от bla Посмотреть сообщение
Найти максимальное отрицательное число строки, у которой произведение элементов больше 200.
Может произведение > -200 ?
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
01.12.2011, 19:14 3
C
1
canf("%i",&a[i][j]);
в 11 строчке замените на
C
1
scanf("%i",&a[i][j]);
0
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 7
01.12.2011, 19:31  [ТС] 4
да то,наверное, когда ровняла строки..
вывод таки неправильный

Добавлено через 47 секунд
Цитата Сообщение от ZaVyLoN Посмотреть сообщение
Может произведение > -200 ?
нет, именно 200 )

Добавлено через 8 минут
выводит как-то так
Код
massiv
 78      90    -2     -90     45
  9       3      4       5        6
 -93    -3    95       34     23
 4        4      4       4       4
 4        4      4       4        4
 


 max[0]=-1000
 max[0]=-1000
 max[0]=-2
 max[0]=-2
 max[0]=-2
 max[1]=-1000
 max[1]=-1000
 max[1]=-1000
 max[1]=-1000
 max[1]=-1000
 max[2]=-93
 max[2]=-3
 max[2]=-3
 max[2]=-3
 max[2]=-3
 max[3]=-1000
 max[3]=-1000
 max[3]=-1000
 max[3]=-1000
 max[3]=-1000
 max[4]=-1000
 max[4]=-1000
 max[4]=-1000
 max[4]=-1000
 max[4]=-1000
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
01.12.2011, 19:41 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от bla Посмотреть сообщение
нет, именно 200 )
Немного не про то подумал.

Держи.
И пользуйся пробелом, код станет более читабельным.
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 3
#define m 3
#pragma argsused
 
int find_min(int *mas);
 
int main(int argc, char* argv[])
{
    
    int **a = (int**) malloc (n * sizeof(int));
        for (int i = 0; i < m; i++) 
                *(a + i) = (int*) malloc (m * sizeof(int));
 
    
    printf("vvedite element \n");
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++) 
        {
            scanf("%d", &(*(*(a + i) + j)));
        }
    }
 
    printf("\nmassiv \n");
 
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++) 
        {
            printf("%d ", *(*(a + i) + j));
        }
        printf("\n");
    }
 
    for(int i = 0; i < n; i++)
    {
        int mult = 1;
        for(int j = 0; j < m; j++)
        {
            mult *= *(*(a + i) + j);
        }
 
        if( mult > 200)
        {
            int *temp = (int*) malloc (m * sizeof(int));
                                
            for(int k = 0; k < m; k++)
                *(temp+k) = *(*(a + i) + k);
 
            find_min(temp);
 
            
            printf("Min el. stroki = %d \n", find_min(temp));
 
            
        }
    }
    getch();
    
    return 0;
}
 
 
int find_min(int *mas)
{
    int min = 0;
    for(int i = 0; i < m; i++)
    {
        if(mas[i] < min)
            min = mas[i];
    }
    return min;
}
1
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 7
01.12.2011, 19:46  [ТС] 6
Спасибо.. я вот тоже свой код правила.. и получилось
Код
 max[0]=-3
 max[1]=-1000
 max[2]=-8
 max[3]=-1000
 max[4]=-1000
собственно верно все вывело.. но как сделать чтоб выводило только те строки в которых есть отрицательный максимум число?
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
01.12.2011, 19:49 7
Посмотрите мой код.
Выводит только Max отрицательные числа в строках.
0
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 7
01.12.2011, 19:53  [ТС] 8
в тех строках где нет максимально Ваш код вывод 0,
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
01.12.2011, 20:00 9
Цитата Сообщение от bla Посмотреть сообщение
в тех строках где нет максимально Ваш код вывод 0,
Выводит 0, если все элементы в массиве положительные.

Исправляется это след. образом.

C
1
2
3
4
if(find_min(temp) == 0)
    printf("Нет отрицательных элементов!");
else
    printf("Min el. stroki = %d \n", find_min(temp));
1
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 7
01.12.2011, 20:01  [ТС] 10
все
спасибо огромное )))
разобралась )))
0
01.12.2011, 20:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2011, 20:01
Помогаю со студенческими работами здесь

Найти максимальное отрицательное число в массиве
в массиве А(20).Найти максимальное отрицательное число.

Односвязный список: найти максимальное отрицательное число
Дан не пустой односвязный список, в котором каждый элемент имеет тип: struct elem { int num;...

Массив: Найти номер строки матрицы, в которой больше всего единичных элементов.
Дана квадратная матрица А порядка n. Найти номер строки матрицы, в которой больше всего...

Найти произведение элементов строки в которой находится максимальный элемент матрицы
Дана вещественная матрица А(5,5).Найти произведение элементов строки в которой находится...

Блок-схема. Вычислить произведение элементов каждой строки, найти максимальное из произведений
Условие: В заданной матрице вычислите произведения элементов каждой строки и вычтите из элементов...

Даны три числа. Найти среди них максимальное отрицательное число
Всем примет, начал изучать Visual Basic никак не могу решить задачу. Даны три числа. Найти среди...


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

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