Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49

Переставить первую и последнюю цифры числа

22.01.2014, 20:54. Показов 7314. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие задачи: Дано натуральное число n. Переставить первую и последнюю цифры числа n.
Не могу понять что за ошибку выдает, и как её исправить.

Code
1
2
Ошибка    3   error LNK1120: 1 неразрешенных внешних элементов   c:\users\денис\documents\visual studio 2010\Projects\onen\Debug\onen.exe   1
Ошибка    2   error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup  c:\Users\Денис\documents\visual studio 2010\Projects\onen\onen\MSVCRTD.lib(crtexe.obj)
Помогите пожалуйтса!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
using namespace std;
 
void locmax(int **pm, int n, int *indi, int *indj)
{
int max, i, j;
 
max = pm [0][0];
*indi = 0;
*indj = 0;
 
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (pm[i][j] > max)
{
max = pm[i][j];
*indi = i;
*indj = j;
}
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2014, 20:54
Ответы с готовыми решениями:

Переставить первую и последнюю цифры числа
LYUDI DOBRIE POMOGITE...PROWU VAS))) 1.Дано натуральное число n. a. Выяснить, входить ли цифра 3 в запись числа n2 . b. Поменять...

Переставить первую и последнюю цифры натурального числа
Дано натуральное число n, переставить первую и последнюю цифры числа.Если число n&lt;10,то вывести просто число. Выходные данные вывести...

Ввести число N. Переставить первую и последнюю цифры числа N
Ввести число. Переставить первую и последнюю цифры числа. На форуме нашел подобный код: #include &lt;iostream&gt; #include...

48
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 00:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от S_el Посмотреть сообщение
Нет,для такой задачи эти массивы вообще не нужны.
Так я о том же Заголовок темы и его первый пост говорят об одном, а ТС пытается реализовать совсем иное.. Вот я и запутался, что именно его интересует..
0
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 00:08  [ТС]
Да я желаю им заниматся, мне не нужно сдавать лабу, я занимаюсь им потому что хочу научится. Изначально стоит условие. Условие задачи: Дано натуральное число n. Переставить первую и последнюю цифры числа n. Я реализовал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <math.h>
using namespace std;
 
void locmax(int **pm, int n, int *indi, int *indj)
{
int max, i, j; //задал 3 переменный (целочисленные)
 
max = pm [0][0]; //присвоил значение максимуму
*indi = 0; //применил указатель и присвоил значение этой переменной оно равно 0
*indj = 0; //аналогично
 
for (i = 0; i < n; i++) //далее делаю цикл с условием
for (j = 0; j < n; j++)
if (pm[i][j] > max) //если массив из i елементов и j елементов больше максимума. Значит максимум равен елементам этого массива. а переменные indi, indj равны значению i и соответственно j.
{
max = pm[i][j];
*indi = i;
*indj = j;
}
}
Но по какой-то причине у меня идут ошибки. Я обьясню то что я делал в задаче. По идее задача должна реализоватся. Но она не реализовуется. Помогите решить или показать как её решить если я её не правильно решаю. P.S. расписал свои действия P.S.2. согласен математическая библиотека не к месту
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2014, 00:10
Для комментариев в C++ используются // или /* комментарий */ для области.
1
Заблокирован
23.01.2014, 00:15
Anwer, давайте пока-что уйдем от задачи перемены местами двух цифр одного числа - она не самая простая и понятная.
Попробуем в матрице(двумерный массив) поменять местами максимум и первый элемент.
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
#include <iostream>
#include <locale>
using namespace std;
 
void locmax(int pm[100][100], int n)
{
int max, i, j,indi,  indj;
max = pm [0][0];
indi = 0;
indj = 0;
 
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (pm[i][j] > max)
{
max = pm[i][j];
indi = i;
indj = j;
}
cout<<max<<" "<<indi<<" "<<indj<<" ";
}
 
int main() 
{
setlocale(LC_ALL, "rus");
int n;  
int pm[100][100];
cout<<"Введите n <100:"<<endl;;
cin>>n;
cout<<"Введите массив :"<<endl;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
    cout<<"["<<i<<"]["<<j<<"]"<<endl;
    cin>>pm[i][j];
}
 
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
    cout<<pm[i][j]<<" ";
cout<<endl;
}
locmax(pm,n);
}
Тут находим максимум остаеться только поменять его местами с нужным элементом
P.S Одна перемення в функции locmax лишняя, попробуйте определить какая и изменить код так, чтобы её не использовать
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 00:18
Anwer, поддерживаю твое стремление обучаться программированию, но, извини, представленный тобою код ВООБЩЕ никак не связан с этим: Дано натуральное число n. Переставить первую и последнюю цифры числа n. НИКАК !
Код, который ты прислал, находит максимальный элемент двумерного массива и индексы этого максимального элемента. Затем просто выводит три значения. Первое - сам максимальный элемент. Второе - номер строки. Третье - номер столбца.
Скажите мне, как это вообще связано перестановкой цифр в натуральном числе ?
Либо Вы просто издиваетесь над нами, либо я не знаю..)

Добавлено через 1 минуту
S_el, да ради бога, поверьте, комментарии сейчас не первичная проблема, которая стоит перед ТС Вы же видите, что он абсолютно не понимает, что реализовывает совсем иную программу, при этом может корректно дать комментарий каждому шагу, что меня немного удивляет и даже пугает О_о
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2014, 00:19
Цитата Сообщение от Anwer Посмотреть сообщение
Помогите решить или показать как её решить если я её не правильно решаю
Давайте разберем алгоритм вашей задачи.
1.Задать натуральное число n.
2.Разбить число на цифры и определить количество цифр.
3.Собрать новое число на основании цифр старого числа.

Начните реализовать поэтапно.

Добавлено через 54 секунды
Цитата Сообщение от Бедел Посмотреть сообщение
Вы же видите, что он абсолютно не понимает, что реализовывает совсем иную программу, при этом может корректно дать комментарий каждому шагу, что меня немного удивляет и даже пугает О_о
Это меня тоже удивляет,но всякое бывает
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 00:24
S_el, бывает же такое
Ev_Hyper, сомневаюсь, что это ему сейчас будет полезно, если он пока не может отличить простую функцию от main().
Anwer, Вам посоветую изучить работу с функциями более детально, прежде чем браться за такую задачу
0
Заблокирован
23.01.2014, 00:31
Цитата Сообщение от Бедел Посмотреть сообщение
Ev_Hyper, сомневаюсь, что это ему сейчас будет полезно, если он пока не может отличить простую функцию от main().
ничего страшного в этом нет. Считаю, что в самом начале изучения и нужно как можно больше практиковаться на самых простых задачках. Главное понимать алгоритм и уметь писать хотя бы псевдокод.
По комментариям ТС видно, что он стараеться разобратся и понимает, что хочет сделать в каждой строке.
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 00:38
Ev_Hyper, это и пугает, что он разбирается в каждой строчке, но не понимает, что этот алгоритм не делает ничего схожего с перестановкой цифр числа. Просто сказать, что делает каждая строка алгоритма, не такая сложная задача, как понимать, что в целом реализовывает алгоритм. Просто хочу довести до ТС, что он реализовывает алгоритм не имеющий ничего общего с перестановкой цифр в числе.
А так, да, не спорю, он старается, молодец.. Но надо иногда указать верное направление
0
 Аватар для R1987
13 / 13 / 7
Регистрация: 09.12.2012
Сообщений: 63
23.01.2014, 00:43
Anwer, Вот только что была тема про перестановку цифр Поменять крайние цифры числа местами
0
Заблокирован
23.01.2014, 00:46
Цитата Сообщение от Бедел Посмотреть сообщение
но не понимает, что этот алгоритм не делает ничего схожего с перестановкой цифр числа.
А что схожесть есть :
В main() разбили число на массив чисел. Двумерность объясним тем, что в представлении всего одна строка.
(вместо последнего возьмем максимальный для усложнения) в функции ищем максимальный элемент, и находим его индексы
остаеться только поменять местами

Цитата Сообщение от Бедел Посмотреть сообщение
Просто сказать, что делает каждая строка алгоритма, не такая сложная задача, как понимать, что в целом реализовывает алгоритм.
соглашусь

Добавлено через 1 минуту
R1987, вот если бы алгоритм был расширен на длину строки равную n
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 00:50
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
В main() разбили число на массив чисел. Двумерность объясним тем, что в представлении всего одна строка.
(вместо последнего возьмем максимальный для усложнения) в функции ищем максимальный элемент, и находим его индексы
остаеться только поменять местами
Не рискуйте так, сейчас ТС ещё больше запутается)))))

По-моему, на этом уже стоило заканчивать: https://www.cyberforum.ru/post5678986.html
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2014, 01:06
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
R1987, вот если бы алгоритм был расширен на длину строки равную n
Например так:
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
# include "stdafx.h"
#include <iostream>
 
using namespace std;
int func_kol(int num);
 
int main()
{
int x,w,u,res=0,i,j;
cout<<"Vvedute 4uslo"<<endl;
cin>>x;
w=func_kol(x);
int *mas=new int[w];
for(int i=0;i<w;i++)
{
    u=x%10;
    x /= 10;
    mas[i]=u;
}
 
for(j=0,i=w-1;j<w;j++,i--)
{
    if(j==0 || i==0) res=res+mas[i]*pow(10,j);
    else res=res+mas[i]*pow(10,i);
}
cout<<res<<endl;
cin.get();
cin.get();
 
return 0;
}
 
int func_kol(int num)
{
    int kol=0;
    while (num != 0) {
        
        num /= 10;
        kol++;
    }
    return kol;
}
4
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 01:32
S_el, всё намного проще

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int n=256, a, k=0;
    char x[n];
    cout << "Введите число: ";
    gets(x);
    for (int i=0; x[i]!='\0'; i++)
        k++;
    a=x[k-1];
    x[k-1]=x[0];
    x[0]=a;
    cout << x;
    return 0;
}
2
Заблокирован
23.01.2014, 01:35
Бедел, можно стринг использовать, тогда еще проще будет
1
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2014, 01:36
Цитата Сообщение от Бедел Посмотреть сообщение
S_el, всё намного проще

Не по теме:

Что-то я сегодня тривиальных решений не замечаю :D

0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
23.01.2014, 01:50
Ev_Hyper, string уже использовал господин Bend3r в посте #3, я не хотел повторяться Сложность заключалась лишь в определении конца строки, решил эту проблему поиском '\0' и использованием счётчика)

Добавлено через 4 минуты
Цитата Сообщение от S_el Посмотреть сообщение
Что-то я сегодня тривиальных решений не замечаю

Не по теме:

Как говорится в бородатом анекдоте: Только программисты могут мериться, у кого короче)))) Правда, короче не всегда означает эффективнее)



Добавлено через 7 минут
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
if (pm[i][j] > max)
{
max = pm[i][j];
indi = i;
indj = j;
}
cout<<max<<" "<<indi<<" "<<indj<<" ";
Кстати, если элемент [0][0] будет максимальным(max = pm [0][0]; ), то indi = i; и indj = j; не выполнится, в итоге индексы мы не сможем получить Я эту проблему решил проверкой элемента [0][0] с самим собой, пришлось ставить в условии знак >=.

Добавлено через 1 минуту
А, нет, глупость сказал, мы indi и indj изначально присвоили нули)
1
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 13:56  [ТС]
Кароче
Задача не правильна.
Ошибка 1 error C2057: требуется константное выражение c:\users\денис\documents\visual studio 2010\projects\onen\onen\oner.cpp 8
Ошибка 3 error C2133: x: неизвестный размер c:\users\денис\documents\visual studio 2010\projects\onen\onen\oner.cpp 8
Ошибка 2 error C2466: невозможно выделить память для массива постоянного нулевого размера c:\users\денис\documents\visual studio 2010\projects\onen\onen\oner.cpp 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int n=256, a, k=0;
    char x[n];
    cout << "Введите число: ";
    gets(x);
    for (int i=0; x[i]!='\0'; i++)
        k++;
    a=x[k-1];
    x[k-1]=x[0];
    x[0]=a;
    cout << x;
    return 0;
}
Условие задачи: Дано натуральное число n. Переставить первую и последнюю цифры числа n.
Уже не прошу помочь разобраться, решите кто небудь её
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.01.2014, 14:02
Цитата Сообщение от Anwer Посмотреть сообщение
Уже не прошу помочь разобраться, решите кто небудь её
Чем вам не понравилась моя реализация в посте Переставить первую и последнюю цифры числа
1
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 14:08  [ТС]
Ошибка 1 error C2668: pow: неоднозначный вызов перегруженной функции c:\users\денис\documents\visual studio 2010\projects\onen\onen\oner.cpp 22
Ошибка 2 error C2668: pow: неоднозначный вызов перегруженной функции c:\users\денис\documents\visual studio 2010\projects\onen\onen\oner.cpp 23
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2014, 14:08

Переставить местами первую и последнюю цифры заданного числа
Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа

Переставить местами первую и последнюю цифры заданного натурального числа
2.Дано натуральное число п. Переставить местами первую и последнюю цифры этого числа. Благодарю

Дано натуральное число n. Переставить первую и последнюю цифры числа
Дано натуральное число x. Переставить первую и последнюю цифры числа. У меня есть похожая задача. Вот она: #include &lt;stdlib.h&gt;...

Переставить первую и последнюю цифры числа натурального числа n
Переставить первую и последнюю цифры числа натурального числа n! Заранее спасибо!

Дано натуральное число n. Переставить местами первую и последнюю цифры числа n
Дано натуральное число n. Переставить местами первую и последнюю цифры числа n.


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru