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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
#1

Ширина столбцов матрицы - C++

24.01.2009, 17:20. Просмотров 1896. Ответов 12
Метки нет (Все метки)

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>
#define A 3
#define B 2
int main()
{
    int mass[A][B],i,j,a,b,s=0;
    clrscr();
    printf("input mass\n");
    for(i=0;i<A;i++)
        for(j=0;j<B;j++)
            scanf("%d",&mass[i][j]);
    for(i=0;i<A;i++)
        {
        printf("\n");
        for(j=0;j<B;j++)
            printf("%d\t",mass[i][j]);
        }
    printf("\n\ninput a\n");
    scanf("%d",&a);
    printf("input b\n");
    scanf("%d",&b);
    for(i=a-1;i<b;i++)
        for(j=0;j<B;j++)
            s+=mass[i][j];
    printf("summa=%d\n\n",s);
    printf("press any key");
    getch();
    return 0;
}
Как модифицировать задачу так, что бы при выведении матрицы на экран ширина всех столбцов была одинаковой? Ибо в нынешнем своем виде если вводить например однозначные и двузначные числа - то столбцы матрицы жутко корёжит... Так вроде прога работает нормально, но выравнивание столбцов - одно из условий задачи... Подскажите - как это реализовать. Через поиск вроде не нашел.

Добавлено через 19 минут 3 секунды
Ой... вообще размерность массива 9x7... просто посоветовали уменьшить для отладки) а назад вернуть забыл...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2009, 17:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ширина столбцов матрицы (C++):

Сортировка столбцов матрицы по возрастанию последних элементов столбцов - C++
Сортировка столбцов по росту последних элементов столбцов.Помогите пожалуйста, надо только фрагмент как его сортировать. Это пример: ...

Вывести на экран номера столбцов матрицы, сумма которых превышает заданную величину, и число таких столбцов - C++
Всем привет!:) Прошу помощи в написании программы, а точнее доведении ее до ума. Условие следующее: Для матрицы из 3 строк и 7 столбцов...

Найти номера тех столбцов матрицы, сумма элементов которых превышает заданную величину, и число таких столбцов - C++
Для матрицы из 3 строк и 7 столбцов отпечатать номератех слобцов, сумма элементов которых превышает заданную величину,и число таких...

Ошибка при вводе разного кол-ва строк и столбцов в матрицы. Динамич. матрицы/массивы - C++
Дана матрица, размерность вводит пользователь, данные тоже. Осуществить сортировку вставками, массива, который будет получен из суммы...

Перестановка столбцов матрицы - C++
Дан двумерный числовой массив n*m. Найти массив получающийся перестановкой столбцов первого с последним, второй с предпоследним и т.д

Сортировка столбцов матрицы - C++
У меня вопрос..... попытался выполнить сортировку четных столбцов по убыванию.... у меня зацикливается на вложенном &quot;for&quot; который перед if ...

12
Otaka
1824 / 680 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
24.01.2009, 17:41 #2
C++
1
printf("%4d\t",mass[i][j]);
1
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
24.01.2009, 17:52  [ТС] #3
Во... нормально) Только все таки если в массиве есть числа из 5 символов то снова начинается смещение... Но думаю прокатит... А есть еще какие-нибудь способы? На будущее)

Добавлено через 2 минуты 18 секунд
А как это на пальцах объяснить? Что-то вроде отступа?
0
Otaka
1824 / 680 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
24.01.2009, 17:55 #4
А написать %10d нельзя?
При использовании консоли хорошо пользоваться cout из iostream.h и манипуляторами из iomanip.h
Там можно писать так:
C++
1
2
3
cout<<setw(5)<<45<<endl;
cout<<setw(6)<<setprecision(2)<<46.6;
//и еще много других манипуляторов вывода
Ширина поля вывода.
0
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
24.01.2009, 18:03  [ТС] #5
Написать можно) только тогда это будет очень большая матрица... все таки 9x7... А какими именно элементами она будет заполняться - не известно...
... эм... с iostream и iomanip пока не занком) Но думаю на данном этапе сойдет и способ с шириной поля ввода... Спасибо)
0
xToTa
13 / 13 / 0
Регистрация: 26.01.2009
Сообщений: 162
26.01.2009, 18:05 #6
А вообще `\t` это табуляция.
0
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
26.01.2009, 18:09  [ТС] #7
Это я знаю)) четверка стоит не перед \t, а между % и d...
0
Otaka
1824 / 680 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
26.01.2009, 18:09 #8
Действительно. Я о ней и не подумал, наверное потому, что ниразу ей не пользовался.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.01.2009, 00:33 #9
Код
#define A 3  
#define B 2

    int mass[A][b]
Код
    printf("%*d", (maxelem > 100000 ? 10 : 5), mass[i][j]);
0
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
27.01.2009, 16:03  [ТС] #10
не знает - что такое maxlem. Что для него нужно подключить? Или самому писать функцию?
0
xToTa
13 / 13 / 0
Регистрация: 26.01.2009
Сообщений: 162
27.01.2009, 16:12 #11
maxelem это ты сам должен функцию написать маленькую... функцию нахождения максимального элемента всей матрицы, а это я думаю не так уж сложно для тебя

оно просто заменяет * между % и d на число 5 если максимальный элемент < 10000, т.е. 4 цифры, или на 10 если максимальный элемент более 4 цифр...
только в строке printf("%*d", (maxelem > 100000 ? 10 : 5), mass[i][j]); надо сравнение делать не просто >, а >=

И мне кажется достаточно будет и не 10, а всего 7-8... иначе действительно размажет на весь экран =)
1
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
27.01.2009, 16:46  [ТС] #12
Да думаю сойдет и поле ввода... Суть задачи не в этом... Но если что - думаю функцию написать смогу)
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.01.2009, 01:14 #13
Код
printf("%*d", (abs(maxelem) > 9999  ? 12 : 6), mass[i][j]);
int помещает 2147483647 и -2147483648

Добавлено через 4 минуты 0 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include <stdio.h>
 
/* находит максимальный элемент матрицы */
main()
{
    int mtx[3][3] = {
        1, 2, 3,
        4, 5, 6,
        1, 7, 3
    };
    int i, j, maxelem;
    
    for (maxelem = i = 0; i < 3; i++)
        for (j = 0; j < 3; j++)
            if (maxelem < mtx[i][j])
                maxelem = mtx[i][j];
    printf("%d\n", maxelem);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2009, 01:14
Привет! Вот еще темы с ответами:

Перестановка столбцов матрицы - C++
Помогите разобраться, суть задачи: Дана целочисленная матрица размера 6х9. Найти матрицу, получающуюся из данной: перестановкой строк -...

Сложение столбцов матрицы - C++
помогите решить задачу в с++ Задан двумерный массив 10 на 10 случайным образом. Вводим 2 числа от 1 до 10. нужно сложить...

Обнуление столбцов матрицы - C++
Дана матрица (любой размерности), нужно последовательно сравнивать столбцы друг с другом. И если есть совпадающие элементы, то полностью...

Среднеарифметическое столбцов матрицы - C++
Ниже код создания и заполнение двумерного динамического массива вещественными числами. Как найти среднеарифметическое его столбцов? ...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
28.01.2009, 01:14
Ответ Создать тему
Опции темы

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