Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 4
1

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

25.02.2010, 15:09. Показов 1912. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2010, 15:09
Ответы с готовыми решениями:

Дано четырехзначное число. Если оно читается слева направо и справа налево одинаково, то вывести "да", иначе "нет"
Дано четырехзначное число. Если оно читается слева направо и справа налево одинаково, то вывести...

Вводится четырёхзначное число. Выдать "YES", если число состоит из двух пар одинаковых цифр, и "NO", если это не так
Вводится четырёхзначное число. Выдать &quot;YES&quot;, если число состоит из двух пар одинаковых цифр, и...

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

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

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10962 / 6927 / 1635
Регистрация: 25.07.2009
Сообщений: 12,610
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
...
891 / 75 / 6
Регистрация: 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
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 4
25.02.2010, 16:56  [ТС] 4
Спасибо но у мя вопрос почему у mNumber исправил массив на 4? ведь если считать по массиву 0,1,2,3-4числа?
0
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,914
25.02.2010, 17:07 5
можеш оставить и 3, но тогда условие будет не i<4, a i<=3

Добавлено через 47 секунд
при i<3 получается 0 1 2 -----3_значное число
0
...
891 / 75 / 6
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2010, 17:21

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

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

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

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


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

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

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