Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Me11eR
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34

создание таблицы умножения, error

22.07.2009, 00:10. Показов 2029. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте дорогие обитатели форума, собственно я здесь новенький и отношусь так сказать к разряду "хеллоувёрлдщиков"... ну это так, а так о чем я:
Собственно вот код

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
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
void tablexy(int, int); //ïðîòîòèï
int main(int argc, char *argv[])
{
    int x, y;           //îáüÿâëÿåì ïåðåìåííûå
    x = (int) argv[1];  //è ñòàâèì èì çíà÷åíèÿ
    y = (int) argv[2];  //ïåðåäàâàåìûå ÷åðåç êîìàíäíóþ ñòðîêó
    tablexy(x, y);
    system("PAUSE");
    return EXIT_SUCCESS;
}
void tablexy(int x, int y)
{
     //-----------------------------------
     //Ïåò÷àòàåì ñòðîêó âèäà "  |  1  2  3 ... (x-1)  x"  
     cout << setw(3) << "|";
     
     for(int c = 1; c <= x; c++)
     {
             cout << setw(3) << c;
     }
     cout << endl;
     //-----------------------------------
     
     //ïåò÷àòàåì ñòðîêó òèïà "---" ðàâíóþ ïî äëèííå âåðõíåé ñòðîêå
     for(int c = 1; c <= x; c++)
     { 
             cout << "---";
     }
     cout << endl;
     //-----------------------------------
     
     //öèêë ïå÷àòè ñòðîê òèïà "y  |  y*1  y*2 ... y*x"
     for(int cy = 1; cy <= y; cy++)
     {
             
             
     
     cout << setw(2) << cy << ' ' << "| ";
                     
     for(int cx = 1; cx <= x; cx++)
     {
           cout << cy*cx << "  ";
     }
     
     cout << endl;
            
             
    
     }
 
}
Собственно с точки зрения компилятора сдесь все впорядке, но при выполнении чтото вызывает бесконечный цикл и программа выводит мусор. Прозьба хотябы намеком сказать что тут неапорядке.
Собственно код по идее должен выводить таблицу типа
Code
1
2
3
4
5
6
7
 |   1  2  3  ... х
-----------------
1|  1  2  3 ... 1*x
2|  2  4  6 ... 2*y
...
y|  ........... y*x
итд
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2009, 00:10
Ответы с готовыми решениями:

Вывод таблицы умножения
Borland C++ Составить программу, которая распечатывает на экране таблицу умножения, по типу программы нахождения квадрата числа ...

Выввод таблицы умножения
Надо написать программу в с++,которая будет вывводить таблицу умножения С ПОМОЩЬЮ цикла.Ограничение:цикл должен быть в 5 строчек.

Раскраска таблицы умножения
Раскраска таблицы умножения (Время: 1 сек. Память: 16 Мб Сложность: 32%) Таблицей умножения назовем таблицу размера n строк на m...

6
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 00:44
C++
1
x = (int) argv[1];  //и ставим им значения
заменить на

C++
1
x= atoi( argv[1] );
Добавлено через 1 минуту 6 секунд
И вообще пиши правильно - проверь сначала что у тебя в argv есть два аргумента, а то если ни одного параметра не подать, то все рухнет.
1
 Аватар для Me11eR
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34
22.07.2009, 00:59  [ТС]
Думаю для проверки такие строки пойдут
C++
1
2
3
4
5
6
7
if(((atoi( argv[1] )) >= 1 && (atoi( argv[1] )) <= 50) && ((atoi( argv[2] )) >=1 && (atoi( argv[2] )) <=50))
    {
       x = atoi( argv[1] );  //è ñòàâèì èì çíà÷åíèÿ
       y = atoi( argv[2] );  //ïåðåäàâàåìûå ÷åðåç êîìàíäíóþ ñòðîêó
       tablexy(x, y);
    }
    else cout << "error";
адд, читабельность только упала...
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 01:02
Жесть.
Я имел в виду, что нужно проверить argc тоже.

C++
1
2
3
4
5
6
7
8
9
10
11
argc--;
argv++;
if ( argc<2 ) { cerr <<"No arguments\n"; exit( 2 ); }
x= atoi( argv[0] );
y= atoi( argv[1] );
if ( 1<=x && x<=50 && 1<=y && y<=50 ) {
    cout <<"Do something ...";
} else {
   cerr <<"Invalid arguments\n";
   exit( 2 );
}
0
 Аватар для Me11eR
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34
22.07.2009, 01:09  [ТС]
Ну а че, добавить в мою строку && (argv == 2) и в эльсе печатать хелп по проге. новичкам пойдет.
а в твоем коде используется exit. который, как я догадываюсь завершает прогу. ну собственно опытв у меня мало, могу чтото недогонять. такчто все равно спасибо
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 01:11
Так как делаешь ты не стоит делать.
Зачем дергать много раз функцию atoi() ?
Проще получить значения x,y и потом их проверять.
Да и код будет читабельнее.
1
 Аватар для Me11eR
10 / 10 / 5
Регистрация: 08.07.2009
Сообщений: 34
22.07.2009, 01:12  [ТС]
кстати тоже значюющий факт, производительность + читабельность. И еще раз спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2009, 01:12
Помогаю со студенческими работами здесь

Создание таблицы умножения
Дорогие форумчане, вас приветствует новичок. Мне нужно сделать табличку умножения в HTML с JavaScript, саму таблицу умножения я сделал, но...

Создание таблицы умножения
задание: Составить программу проверки знания таблицы умножения. Сомножители из диапазона от 2 до 9 задаются случайным образом. Предложить...

Создание таблицы умножения
Помогите пожалуйста,как сделать так чтобы бы строка и столбец переумножались в первой строчке как на фото,чтобы учитывалось 1*1 ...

Создание таблицы умножения
Добрый день! Пожалуйста, помогите выполнить задание: Создать таблицу умножения чисел от 1 до N в JavaScript. Значение N вводит...

Создание таблицы умножения
Всем привет Создаю таблицу умножения, ввод данных через inputbox, а вывод через Listbox. Подскажите как сделать что то не выходит) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru