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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
22.01.2014, 20:54     Переставить первую и последнюю цифры числа #1
Условие задачи: Дано натуральное число n. Переставить первую и последнюю цифры числа n.
Не могу понять что за ошибку выдает, и как её исправить.

Код
Ошибка	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;
}
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 20:54     Переставить первую и последнюю цифры числа
Посмотрите здесь:

Переставить первую и последнюю цифры числа C++
Переставить местами первую и последнюю цифры C++
Переставить первую и последнюю цифры числа натурального числа n C++
Дано натуральное число n. Переставить местами первую и последнюю цифры числа n C++
Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 00:05     Переставить первую и последнюю цифры числа #21
Цитата Сообщение от S_el Посмотреть сообщение
Нет,для такой задачи эти массивы вообще не нужны.
Так я о том же Заголовок темы и его первый пост говорят об одном, а ТС пытается реализовать совсем иное.. Вот я и запутался, что именно его интересует..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 00:08  [ТС]     Переставить первую и последнюю цифры числа #22
Да я желаю им заниматся, мне не нужно сдавать лабу, я занимаюсь им потому что хочу научится. Изначально стоит условие. Условие задачи: Дано натуральное число 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. согласен математическая библиотека не к месту
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
23.01.2014, 00:10     Переставить первую и последнюю цифры числа #23
Для комментариев в C++ используются // или /* комментарий */ для области.
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
23.01.2014, 00:15     Переставить первую и последнюю цифры числа #24
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 лишняя, попробуйте определить какая и изменить код так, чтобы её не использовать
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 00:18     Переставить первую и последнюю цифры числа #25
Anwer, поддерживаю твое стремление обучаться программированию, но, извини, представленный тобою код ВООБЩЕ никак не связан с этим: Дано натуральное число n. Переставить первую и последнюю цифры числа n. НИКАК !
Код, который ты прислал, находит максимальный элемент двумерного массива и индексы этого максимального элемента. Затем просто выводит три значения. Первое - сам максимальный элемент. Второе - номер строки. Третье - номер столбца.
Скажите мне, как это вообще связано перестановкой цифр в натуральном числе ?
Либо Вы просто издиваетесь над нами, либо я не знаю..)

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

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

Добавлено через 54 секунды
Цитата Сообщение от Бедел Посмотреть сообщение
Вы же видите, что он абсолютно не понимает, что реализовывает совсем иную программу, при этом может корректно дать комментарий каждому шагу, что меня немного удивляет и даже пугает О_о
Это меня тоже удивляет,но всякое бывает
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 00:24     Переставить первую и последнюю цифры числа #27
S_el, бывает же такое
Ev_Hyper, сомневаюсь, что это ему сейчас будет полезно, если он пока не может отличить простую функцию от main().
Anwer, Вам посоветую изучить работу с функциями более детально, прежде чем браться за такую задачу
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
23.01.2014, 00:31     Переставить первую и последнюю цифры числа #28
Цитата Сообщение от Бедел Посмотреть сообщение
Ev_Hyper, сомневаюсь, что это ему сейчас будет полезно, если он пока не может отличить простую функцию от main().
ничего страшного в этом нет. Считаю, что в самом начале изучения и нужно как можно больше практиковаться на самых простых задачках. Главное понимать алгоритм и уметь писать хотя бы псевдокод.
По комментариям ТС видно, что он стараеться разобратся и понимает, что хочет сделать в каждой строке.
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 00:38     Переставить первую и последнюю цифры числа #29
Ev_Hyper, это и пугает, что он разбирается в каждой строчке, но не понимает, что этот алгоритм не делает ничего схожего с перестановкой цифр числа. Просто сказать, что делает каждая строка алгоритма, не такая сложная задача, как понимать, что в целом реализовывает алгоритм. Просто хочу довести до ТС, что он реализовывает алгоритм не имеющий ничего общего с перестановкой цифр в числе.
А так, да, не спорю, он старается, молодец.. Но надо иногда указать верное направление
R1987
 Аватар для R1987
13 / 13 / 2
Регистрация: 09.12.2012
Сообщений: 63
23.01.2014, 00:43     Переставить первую и последнюю цифры числа #30
Anwer, Вот только что была тема про перестановку цифр Поменять крайние цифры числа местами
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
23.01.2014, 00:46     Переставить первую и последнюю цифры числа #31
Цитата Сообщение от Бедел Посмотреть сообщение
но не понимает, что этот алгоритм не делает ничего схожего с перестановкой цифр числа.
А что схожесть есть :
В main() разбили число на массив чисел. Двумерность объясним тем, что в представлении всего одна строка.
(вместо последнего возьмем максимальный для усложнения) в функции ищем максимальный элемент, и находим его индексы
остаеться только поменять местами

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

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

По-моему, на этом уже стоило заканчивать: Переставить первую и последнюю цифры числа
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
23.01.2014, 01:06     Переставить первую и последнюю цифры числа #33
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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;
}
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 01:32     Переставить первую и последнюю цифры числа #34
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;
}
Ev_Hyper
 Аватар для Ev_Hyper
1808 / 1629 / 435
Регистрация: 15.12.2013
Сообщений: 5,791
23.01.2014, 01:35     Переставить первую и последнюю цифры числа #35
Бедел, можно стринг использовать, тогда еще проще будет
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
23.01.2014, 01:36     Переставить первую и последнюю цифры числа #36
Цитата Сообщение от Бедел Посмотреть сообщение
S_el, всё намного проще

Не по теме:

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

Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
23.01.2014, 01:50     Переставить первую и последнюю цифры числа #37
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 изначально присвоили нули)
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 13:56  [ТС]     Переставить первую и последнюю цифры числа #38
Кароче
Задача не правильна.
Ошибка 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.
Уже не прошу помочь разобраться, решите кто небудь её
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
23.01.2014, 14:02     Переставить первую и последнюю цифры числа #39
Цитата Сообщение от Anwer Посмотреть сообщение
Уже не прошу помочь разобраться, решите кто небудь её
Чем вам не понравилась моя реализация в посте Переставить первую и последнюю цифры числа
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 14:08     Переставить первую и последнюю цифры числа
Еще ссылки по теме:

C++ Для целого числа N, вводимого с клавиатуры, переставить первую и последнюю цифры и выдать его на печать.
Дано натуральное число n. Переставить первую и последнюю цифры числа C++
C++ Дано натуральное число л. Переставить местами первую и последнюю цифры этого числа

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

Или воспользуйтесь поиском по форуму:
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 14:08  [ТС]     Переставить первую и последнюю цифры числа #40
Ошибка 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
Yandex
Объявления
23.01.2014, 14:08     Переставить первую и последнюю цифры числа
Ответ Создать тему
Опции темы

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