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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
ImNaruto
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 4
#1

дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" - C++

25.02.2010, 15:09. Просмотров 1283. Ответов 5
Метки нет (Все метки)

Вот попробовал написать код но ошибку выдает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
    long Number;
    cout << "Enter the number: ";
    cin >> Number;
    char str[10];
 
    itoa(Number, str, 10);
    int mNumber[3];
    int i;
    for (i=0;i<3;i++)mNumber[i] = atoi(str[i]);
    int Sum[1];
    Sum[0]=mNumber[0]+mNumber[1];
    Sum[1]=mNumber[2]+mNumber[3];
    if(Sum[0]==Sum[1])cout<<"Yes";
    else cout<<"No";
    return 0;
}
Вот ошибка: error:invalid conversion from 'char' to 'const char*'
error: initializing argument 1 of 'int atoi(const char*)'

Вопрос: Почему ошибка и как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2010, 15:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" (C++):

Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений - C++
Здравствуйте, помогите написать две программы. 1) Дано натуральное число. Найти сумму последних &quot;n&quot; цифр &quot;n&quot; числа, не применяя...

Подсчитать количество "счастливых" шестизначных автобусных билетов(сумма первых трех цифр равна сумме трех последних цифр) - C++
Подсчитать количество &quot;счастливых&quot; шестизначных автобусных билетов, т.е таких, в номерах которых сумма трех первых цифр равна сумме трех...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ" - C++
Даны две строки. Если они начинаются с одинаковых символов, то напечатать &quot;ДА&quot;, иначе - &quot;НЕТ&quot;. (5)

Дано четырехзначное число. Проверить является ли оно "счастливым билетом" - C++
Дано четырехзначное число. Проверить является ли оно &quot;счастливым билетом&quot;. Примечание: счастливым билетом называется число, в котором при...

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...

5
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,867
25.02.2010, 16:10 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    int num;
    char buf[5];
 
    printf("Number: ");
    if ( scanf("%d", &num) != 1 || num < 1000 || num > 9999 ){
        printf("Wrong number!\n");
        exit(1);
    }
    sprintf(buf, "%d", num);
    printf("%s\n", ((buf[0] + buf[1]) == (buf[2] + buf[3])) ? "yes" : "no");
 
    exit(0);
}
1
Liebe
...
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
25.02.2010, 16:34 #3
в принципе тебе тут уже ответили ))))
но если хочешь конкретно по твоему коду, то ошибка в неверном типе в фукции atoi - нужно const char* а у тебя char
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
    long Number;
    cout << "Enter the number: ";
    cin >> Number;
    char str[10], ch[1];
    itoa(Number, str,10);
    int mNumber[4]; // массив не до 3 как было, а до 4 - ведь число четырехзначное
    int i;
    for (i=0;i<4;i++) {ch[0]=str[i]; //записываем символ в нужный нам тип char*, чтобы такой ошибки 
                                                // не было..и цикл до 4
                       mNumber[i] = atoi(ch);}
    int Sum[2];// суммы должно быть 2, поэтому тут массив из 2 элементов, а не из 1
    Sum[0]=mNumber[0]+mNumber[1];
    Sum[1]=mNumber[2]+mNumber[3];
    if(Sum[0]==Sum[1])cout<<"Yes";
    else cout<<"No";
    return 0;
}
1
ImNaruto
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 4
25.02.2010, 16:56  [ТС] #4
Спасибо но у мя вопрос почему у mNumber исправил массив на 4? ведь если считать по массиву 0,1,2,3-4числа?
0
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.02.2010, 17:07 #5
можеш оставить и 3, но тогда условие будет не i<4, a i<=3

Добавлено через 47 секунд
при i<3 получается 0 1 2 -----3_значное число
0
Liebe
...
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
25.02.2010, 17:21 #6
Цитата Сообщение от ImNaruto Посмотреть сообщение
Спасибо но у мя вопрос почему у mNumber исправил массив на 4? ведь если считать по массиву 0,1,2,3-4числа?
ну да, 4 числа...
при объявлении массива мы указываем не индекс последнего элемента (в данном случае 3), а сколько должно быть элементов в массиве - в данном случае 4. Напишешь 3 - там будет всего 3 числа с индексами 0,1,2
а вот в цикле уже можешь писать индекс последнего элемента, но только включительно (как тут уже тебе сказали)
0
25.02.2010, 17:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2010, 17:21
Привет! Вот еще темы с ответами:

Для каждого элемента последовательности вывести на экран "true" если число чётное и "false" если число нечёное - C++
Задана последовательность из 5 цифр. Для каждого числа вывести на экран &quot;true&quot; - если число четное и &quot;false&quot; - если не четное. ...

Вывести решения уравнения, если их число конечно, "NO", если решений нет, и "INF", если их бесконечно много - C++
Задача с условным оператором. Решить в целых числах уравнение ax + b = 0. Входные данные Вводятся 2 целых числа: a и b. ...

Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" - C++
Помогите с программой, начал делать, ерунда какая то выходит.... #include&lt;iostream.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; - C++
Задача. В файле input.txt содержится неприрывная строка нулей и единиц. Если в строке есть хоть один ноль - вывести в файл output.txt...


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

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

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