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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
#1

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

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

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

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

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

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

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

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

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

48
Ev_Hyper
Заблокирован
23.01.2014, 00:46 #31
Цитата Сообщение от Бедел Посмотреть сообщение
но не понимает, что этот алгоритм не делает ничего схожего с перестановкой цифр числа.
А что схожесть есть :
В main() разбили число на массив чисел. Двумерность объясним тем, что в представлении всего одна строка.
(вместо последнего возьмем максимальный для усложнения) в функции ищем максимальный элемент, и находим его индексы
остаеться только поменять местами

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

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

По-моему, на этом уже стоило заканчивать: Переставить первую и последнюю цифры числа
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,577
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;
}
4
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
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;
}
2
Ev_Hyper
Заблокирован
23.01.2014, 01:35 #35
Бедел, можно стринг использовать, тогда еще проще будет
1
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,577
23.01.2014, 01:36 #36
Цитата Сообщение от Бедел Посмотреть сообщение
S_el, всё намного проще

Не по теме:

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

0
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
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 изначально присвоили нули)
1
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.
Уже не прошу помочь разобраться, решите кто небудь её
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,577
23.01.2014, 14:02 #39
Цитата Сообщение от Anwer Посмотреть сообщение
Уже не прошу помочь разобраться, решите кто небудь её
Чем вам не понравилась моя реализация в посте Переставить первую и последнюю цифры числа
1
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
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,577
23.01.2014, 14:14 #41
библиотеку <math.h> или <cmath> подключите.
0
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 14:19  [ТС] #42
Переставить первую и последнюю цифры числа
Может быть я что-то не так сделал, но всеравно идет подчеркивание.
0
Ev_Hyper
Заблокирован
23.01.2014, 14:32 #43
Anwer, пробуйте:
в коде S_el заменить
C++
1
2
3
4
5
for(j=0,i=w-1;j<w;j++,i--)
{
    if(j==0 || i==0) res=res+mas[i]*pow(10.0,j);
    else res=res+mas[i]*pow(10.0,i);
}
код Бедел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int  a, k=0;
    char x[256];
    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
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
23.01.2014, 14:48  [ТС] #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <math.h>
#include <cmath>
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.0,j);
    else res=res+mas[i]*pow(10.0,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;
}
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,577
23.01.2014, 15:22 #45
Прокомментировал ключевые строки.
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
#include <iostream>
#include <math.h> //лишнее
#include <cmath> //
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.0,j);
//оставляем цифры без изменений
    else res=res+mas[i]*pow(10.0,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;
}
1
23.01.2014, 15:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 15:22
Привет! Вот еще темы с ответами:

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

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

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

Для целого числа N, вводимого с клавиатуры, переставить первую и последнюю цифры и выдать его на печать. - C++
Для целого числа N, вводимого с клавиатуры, переставить первую и последнюю цифры и выдать его на печать. Если можно с объяснениями


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

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