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

Определить номера столбцов, в которых положительных элементов больше чем отрицательных

30.09.2012, 10:50. Просмотров 712. Ответов 7
Метки нет (Все метки)

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

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
const int n=3, m=3;
void main()
{
clrscr();
float a[n][m], b, c;
for(int i=0; i<n; i++) {
printf ("\n Введите %d элементы %d строки (через Enter)", m, i+1);
for (int j=0; j<m; j++) {
float f;
fflush (stdin);
scanf ("%f", &f);
a[i][j]=f;
   }
 }
for(int j=0; j<m; j++)
b=0;
c=0;
{
for(int i=0; i<n; i++) {
if (a[i][j]>0) b+=b;
else c+=c
}
if (b>c)
printf ("\n Столбец \n Число положительных элементов", j, b);
}
getchar();
}
не выдает Столбец и число положительных элементов, не могу найти ошибку.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2012, 10:50
Ответы с готовыми решениями:

Проверить верно ли, что в массиве положительных элементов больше, чем отрицательных
Заданный массив размером N. Верно ли, что в нем положительных элементов больше, чем отрицательных?

Найти в матрице последний столбец, в котором положительных элементов больше чем отрицательных
прошу помощи=) нужно найти в матрице mxn последний столбец в котором положительных элементов...

Определить номера столбцов матрицы у которых сумма элементов отлична от 0.
Дана матрица А с 2 Строками и 70 столбцами. Определить номера тех столбцов у которых сумма их...

Установить, верно ли, что отрицательных членов последовательности больше, чем положительных?
Дано натуральное число n, действительные числа a1,...an: верно ли, что отрицательных членов...

Дан двумерный массив из двух строк и пятнадцати столбцов. Найти номера двух соседних столбцов, сумма элементов в которых
решите плз

7
remarkes
303 / 226 / 15
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
30.09.2012, 11:05 2
строки 20, 21 - используются вне блока
Цитата Сообщение от faceta Посмотреть сообщение
b=0; c=0;
Добавлено через 1 минуту
Цитата Сообщение от faceta Посмотреть сообщение
else c+=c
нету точки с запятой.

Добавлено через 4 минуты
Цитата Сообщение от faceta Посмотреть сообщение
не могу найти ошибку
на будущее: ты перед тем, как выкладывать код, исправь ошибки, которые тебе компилятор пишет: т.е. все эти "забыл точку с запятой поставить", "фигурную/круглую скобку закрыть" - компилятор все это замечает и обязательно ругается и пишет в какой строке ошибка.

Цитата Сообщение от faceta Посмотреть сообщение
printf ("\n Столбец \n Число положительных элементов", j, b);
забыл поставить %d в строке. То есть так:
C
1
printf("\nСтолбец %d\n Число положительных элементов %d", j, b);
0
faceta
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 19
30.09.2012, 11:07  [ТС] 3
выдает \n Столбец \n Число положительных элементов <= это столько раз, сколько выполняется условие. А номера столбцов и число положительных элементов всё равно не выдает
0
remarkes
303 / 226 / 15
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
30.09.2012, 11:09 4
строка 9
Цитата Сообщение от faceta Посмотреть сообщение
float a[n][m], b, c;
зачем тебе "b" и "с" с плавающей точкой, если ты с ними проводишь обычные целочисленные арифметические действия.

Добавлено через 2 минуты
ты патологически забываешь закрывать фигурные скобки. тебе надо работать над этим
0
faceta
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 19
30.09.2012, 11:10  [ТС] 5
В начале самом так и писала, только вот думала может из-за этого проблемы
0
remarkes
303 / 226 / 15
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
30.09.2012, 11:11 6
Цитата Сообщение от faceta Посмотреть сообщение
всё равно не выдает
подожди, я еще код не смотрел ))
0
faceta
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 19
30.09.2012, 11:18  [ТС] 7
это не я забываю, в борланде у меня текст не копируется, вручную набирала...видно просто опечатка, в коде у меня все скобки есть

Добавлено через 6 минут
Всё, получилось. Спасибо большое за помощь)
0
remarkes
303 / 226 / 15
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
30.09.2012, 12:00 8
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
#include <stdio.h>
//~ #include <conio.h> /* не нужна */
#include <math.h>
 
 
const int cols = 3, rows = 3;
 
 
int main() {
    int arr[cols][rows];    /* матрица для заполнения пользователем */
    int pos;            /* число положительных элементов */
    int neg;            /* число отрицательных элементов */
    int *ptr = (int *) &arr;    /* используем для вывода массива */
 
    /* просим пользователя заполнить матрицу */
    for (int i = 0; i < rows; i++) {
        printf("Введите %d элементы %d строки (через Enter)\n", rows, i + 1);
        for (int j = 0; j < cols; j++) {
            fflush(stdin);
            scanf("%d", &arr[i][j]);
        }
    }
 
    /* выводим введенную пользователем матрицу */
    for (int i = 1; i < cols * rows + 1; i++) {
        printf("%d\t", *ptr++);
        if ((i % cols) == 0) {
            printf("\n");
        }
    }
 
    /* считаем количество положительных элементов */
    for (int j = 0; j < cols; j++) {
        pos = neg = 0;
 
        for (int i = 0; i < rows; i++) {
            if (arr[i][j] > 0)
                pos++;
            else if (arr[i][j] < 0)
                neg++;
        }
        if (pos > neg)
            printf("\nСтолбец %d\n Число положительных элементов %d", j, pos);
    }
    getchar();
}
Добавлено через 10 минут
Цитата Сообщение от faceta Посмотреть сообщение
в коде у меня все скобки есть
чтобы потом легче было, правила хорошего стиля:
- закрывающие фигурные скобки всегда ставятся на отдельной строке. Ни перед ней, ни после нее не должно быть печатных символов.
так:
C
1
}
а не так:
C
1
i++; }
- внутренние блоки от внешних должны иметь отступ вправо по вертикали,
C
1
2
3
if (условие) {
     отступ и внутрениий блок кода
}
- то есть писать весь код в одну строку - моветон, ибо трудно определить, что к чему относится.
- необходимо приучиться использовать комментарии. Подписывать:
сверху - назначение программы,
переменные,
блоки кода (если не сразу понятно, что он делает).
- переменные, функции, константы должны иметь такие имена, чтобы по их названиям сразу было ясно, что она хранит/делает. Переменные называют существительным, функции - первое слово глагол. Допустим:
C
1
2
3
4
int count;
int size;
int print_count();
void get_size();
0
30.09.2012, 12:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2012, 12:00

Определить, каких чисел больше: положительных или отрицательных
Необходимо написать программу на языке C. Последовательно вводятся N целых чисел. Определить,...

Выяснить, каких элементов в массиве больше — отрицательных или положительных
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n....

Найти номера двух соседних столбцов матрицы, у которых сумма элементов минимальна
Всем доброго времени суток. У меня небольшая проблема: Есть задачка: дам двумерный массив, нужно...


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

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

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