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

Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток - C++

Восстановить пароль Регистрация
 
Spiderman5
31 / 31 / 14
Регистрация: 07.04.2014
Сообщений: 215
24.08.2014, 23:44     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток #1
Есть такое задание: Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток

Реализовано хорошо и работает правильно
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
#define _CRT_SECURE_NO_WARNINGS
 
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
 
void main()
{
    vector<vector<string> > v(10);
    char str[80];
 
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            sprintf(str, "%2d * %2d   = %4d", i, j, i * j);
            v[i].push_back(str);
        }
    }
 
    for (int i = 0; i < 10; i++)
        copy(v[i].begin(), v[i].end(), ostream_iterator<string>(cout, "\n"));
}
Подскажите, пожалуйста, как реализовать без функции sprintf, чтобы также отлично работало ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 23:44     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток
Посмотрите здесь:

C++ Даны два числа n и m. Создайте двумерный массив A[n][m], заполните его таблицей умножения A[i][j]=i*j и выведите на экра
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток
Заполнить вектор длиной 10 квадратами целых чисел и вывести его в выходной поток C++
C++ STL Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток
STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.08.2014, 13:22     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток #2
Spiderman5, Вместо sprintf в цикле:

C++
1
2
3
std::stringstream ss;
ss << std::setw(2) << i << " * " << j << "   = " << std::setw(4) << i * j;
v[i].push_back(ss.str());
Нужно будет подключить iomanip и sstream.

C++
1
2
const std::string temp = (boost::format("%.2d * %.2d   = %.4d") % i % j % (i * j)).str();
v[i].push_back(temp);
Нужно подключить boost/format.hpp.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
25.08.2014, 13:58     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток #3
Spiderman5, а ты уверен, что тебе нужна матрица строк? Ты вообще у своего учителя в школе уточнял задание? Или тупо записываешь на уроке всё, даже если не представляешь, как оно хотя бы примерно делается?

Цитата Сообщение от Spiderman5 Посмотреть сообщение
Заполнить двухмерный вектор таблицей умножения
Тебе не кажется, что имелся в ввиду двумерный массив или вектор с intами?

Добавлено через 20 секунд
Цитата Сообщение от ForEveR Посмотреть сообщение
boost
буст мало кто знает
Spiderman5
31 / 31 / 14
Регистрация: 07.04.2014
Сообщений: 215
25.08.2014, 14:57  [ТС]     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток #4
Вектор со string вполне подходит для решения - задача реализована и выглядит красиво, препод не придирался.
Мне просто было интересно, как не использовать sprintf.


Помотрел, тут ещё есть на форуме 1 вариант решения этой задачи - там тоже норм.
Тему можно закрывать !
Yandex
Объявления
25.08.2014, 14:57     Заполнить двухмерный вектор таблицей умножения и выввести его в выходной поток
Ответ Создать тему
Опции темы

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