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

Задача по С++ - C++

Восстановить пароль Регистрация
 
Effas
Сообщений: n/a
17.09.2011, 19:23     Задача по С++ #1
Изучально самостоятельно жабу с домашних условия, пришел в универ, начали проходить этот кривейший с++. Возникла сразу тысяча проблем.
Суть задачи ввести 4х значное число, найти сумму всех введенных цифр, затем произведение всех цифр, затем найти число, полученное при прочтении его цифр справа налево.
Принцип "словесный":
1) Ввести 4ре числа.
2) Проверить сколько было введено, если меньше или больше, слать лесом (воспользовался length() - но пришлось использовать string).
3) Получить в каждую переменную по числу (пытался воспользоваться методом CharAt(), но как я понял его в си нет, кое как вытянул элементы из строки).
4) Произвесты вычисления (происходит проблема, когда я вытаскивал цифры из строки в инт, они остались в буквенном "формате", пробывал парсить, но так и не получилось, не знаю как на си парсить).
5) Так же сразу возникла проблема с присвоением.
ИК:
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
46
47
48
49
50
51
52
53
54
55
// var19.cpp: ГЈГ«Г*ГўГ*ûé ГґГ*éë ïðîåêòГ*.
// Г‚Г*ðèГ*Г*ГІ 19.
 
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <string>
 
using namespace std;
 
int main(void)
{
    char number4[4];
    string ler;
    
    printf("#=============================================================[Enter value]====#");
    printf("Enter four-unit number: ");
    scanf("%s", &number4);  
        ler = number4;
    // ïðîâåðêГ* äëèГ*Г» ââåäåГ*Г*ûõ Г§Г*Г*êîâ.
    if(ler.length() > 4)
    {
        printf("ERROR! You have entered more than four signs.\n");
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    else if(ler.length() < 4)
    {
         printf("ERROR! You have entered less than four signs.\n");
         system("PAUSE");
         return EXIT_SUCCESS;
    }
    
    printf("#===================================================[Definition of numbers]====#");
    int NUMBER_1 = number4[0];
    int NUMBER_2 = number4[1];
    int NUMBER_3 = number4[2];
    int NUMBER_4 = number4[3];
  
    printf("The first = %c;\n",NUMBER_1);
    printf("The second = %c;\n",NUMBER_2);
    printf("The third = %c;\n",NUMBER_3);
    printf("The fourth = %c;\n",NUMBER_4);
    
    printf("#=============================================================[Calculation]====#");
    int SUMMA = NUMBER_1 + NUMBER_2 + NUMBER_3 + NUMBER_4;  
        printf("1)The sum of numbers = %c + %c + %c + %c = %c;\n",NUMBER_1,NUMBER_2,NUMBER_3,NUMBER_4,SUMMA);
    int PRODUCT = NUMBER_1 * NUMBER_2 * NUMBER_3 * NUMBER_4;
        printf("2)Product of numbers = %c * %c * %c * %c = %c;\n",NUMBER_1,NUMBER_2,NUMBER_3,NUMBER_4,PRODUCT);
   // int RIGHT_LEFT_NUMBER = NUMBER_4.NUMBER_3.NUMBER_2.NUMBER_1;
   //     printf("3)The number received at perusal of figures of number of %c from right to left = %c;\n",number4,RIGHT_LEFT_NUMBER);
        
    system("PAUSE");
    return EXIT_SUCCESS;
}
P.S. Возможно получился ковно-код, т.к. открыть учебник по си++ нет времени, а в универе ничего подобного не проходили, кроме того, как вывести/ввести текст не проходили (решал пользуясь знаниями по php + java).
То, что си++ кривой, личное имхо, судя по синтаксису, сборщику мусора и ряду причин.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
17.09.2011, 19:34     Задача по С++ #2
Цитата Сообщение от Effas Посмотреть сообщение
2) Проверить сколько было введено, если меньше или больше, слать лесом (воспользовался length() - но пришлось использовать string).
- используй getch() для этого и вгонять в строку не прийдётся

Цитата Сообщение от Effas Посмотреть сообщение
Получить в каждую переменную по числу (пытался воспользоваться методом CharAt(), но как я понял его в си нет, кое как вытянул элементы из строки)
- если загнал в строку посимвольный доступ к элементам str[i]; а лучше числа изначально вгонять в численній массив.
Сейчас накидаю проект, как я понял нужно на плюсах???
Effas
Сообщений: n/a
17.09.2011, 19:37     Задача по С++ #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- используй getch() для этого и вгонять в строку не прийдётся

- если загнал в строку посимвольный доступ к элементам str[i]; а лучше числа изначально вгонять в численній массив.
Сейчас накидаю проект, как я понял нужно на плюсах???
Да, правильно понял.

Добавлено через 1 минуту
Сейчас попробую с методом getch(), и хотел бы узнать, как происходит в си++ присвоение?
Т.е.
int a,b,c;
a = 3;
b = 2;
c = 7;
На выхлопе должно получится - 273;
-=ЮрА=-
Заблокирован
Автор FAQ
17.09.2011, 19:50     Задача по С++ #4
Вот накидал на плюсах
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
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <conio.h> //getch()
 
using namespace std;
 
bool Input(int * arr);
 
int main()
{
    int i,sum,mult;
    int arr[4];//Массив акурат в 4-ри числа, с нем легко работать потом будет
    do
    {
        sum  = 0;
        mult = 1;
        std::cout<<"Enter number : ";
        if(Input(arr))//Работаем с массивом только если ввели правильно
        {
            std::cout<<"Reverse order of digits\r\n";
            for(i = 0; i < 4; i++)
            {
                std::cout<<arr[3 - i];
                sum += arr[i];
                mult*= arr[i];
            }
            std::cout<<"\r\n";
            std::cout<<"Sum of digits : "<<sum<<"\r\n";
            std::cout<<"Mult of digits: "<<mult<<"\r\n";
        }
        std::cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
bool Input(int * arr)
{
    int i = 0;
    char ch;
    bool bRet = false;
    while((ch = getch()) != 13)//Пока Enter не нажали
    {
        std::cout<<ch;
        if(i < 4)
            arr[i] = ch - (int)'0';
        i++;
    }
    if(i == 4)
        bRet = true;
    if(!bRet)
        std::cout<<"\r\nIncorrect input!\r\n";
    else
        std::cout<<"\r\nInput success\r\n";
    return bRet;
}
Миниатюры
Задача по С++  
silent_1991
17.09.2011, 20:03     Задача по С++
  #5
 Комментарий модератора 
Оффтоп заканчиваем.
Effas, свои личные имхи оставьте при себе. Пришли в раздел просить помощи - уважайте тех, у кого её просите. Где что кривее - решать не вам.
Yandex
Объявления
17.09.2011, 20:03     Задача по С++
Ответ Создать тему
Опции темы

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