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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
W0ks
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 75
#1

Проверить правильность задания №2 - C++

09.09.2012, 16:56. Просмотров 1633. Ответов 6
Метки нет (Все метки)

Дано трехзначное число 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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    cout << "Demo\n";
    int number = 0;
    char str[3];
    while(number < 100 || number > 999)
    {
        cout << "Input number (100-999): ";
        cin >> number;
    }
    sprintf(str, "%d", number);
    int sum = 0, i1 = 0, i2 = 0, i3 = 0;
    char tmp = str[0];
    i1 = atoi(&tmp);
    tmp = str[1];
    i2 = atoi(&tmp);
    tmp = str[2];
    i3 = atoi(&tmp);
    sum = i1 + i2 + i3;
    cout << "sum: " << sum << endl;
    if(sum % 2 == 0) cout << "Chetniy\n";
    else cout << "Ne chetniy\n";
    system("pause");
    return 0;
}
Ошибка :
> error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
> c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdio.h(357): см. объявление "sprintf"

C++
1
2
 "sprintf"
//Возвращает отформатированную строку.
Если убрать #include <stdio.h> то возникает такая же ошибка

Исправьте что не так пожалуйста. Если не сложно добавьте объяснение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 16:56     Проверить правильность задания №2
Посмотрите здесь:

Проверить код на правильность C++
Проверить правильность арифметического выражения C++
C++ Строки. Проверить правильность задания круглых скобок
Проверить правильность вычисления по формулам C++
C++ Проверить правильность расстановки скобок
C++ Проверить правильность написания сочетаний «жи», «ши», «ча», «ща»
C++ Проверить на правильность работы программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
09.09.2012, 17:20     Проверить правильность задания №2 #2
В строчке
C++
1
char str[3];
нужно
C++
1
char str[4];
Последний символ идет на обозначение конца строки. Обозначается '\0'. При вводе ставится автоматически.

Добавлено через 1 минуту
P.S.
C++
1
2
#include "stdafx.h"
#include <conio.h>
не нужны. У меня работает без них.
W0ks
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 75
09.09.2012, 17:22  [ТС]     Проверить правильность задания №2 #3
Стоит Visual Studio 2012, исправил как ты сказал, может я не тот проект создаю?
edward_jonson
158 / 158 / 25
Регистрация: 23.02.2011
Сообщений: 390
09.09.2012, 17:28     Проверить правильность задания №2 #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
#include <iostream>
#include <cstdio>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    cout << "Demo\n";
    int number = 0;
    char str[4];
 
    while(number < 100 || number > 999)
    {
        cout << "Input number (100-999): ";
        cin >> number;
    }
 
    sprintf(str, "%d", number);
    int sum = 0, i1 = 0, i2 = 0, i3 = 0;
 
    i1 = str[0] - '0';
    i2 = str[1] - '0';
    i3 = str[2] - '0';
 
    sum = i1 + i2 + i3;
 
    cout << "sum: " << sum << endl;
    if(sum % 2 == 0) cout << "Chetniy\n";
    else cout << "Ne chetniy\n";
 
    system("pause");
    return 0;
}
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
09.09.2012, 17:30     Проверить правильность задания №2 #5
W0ks, возможно ты создаешь через Windows Console Application или как-то так. Тогда без stdafx работать не будет. Я делаю через Empty Project.
W0ks
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 75
09.09.2012, 17:41  [ТС]     Проверить правильность задания №2 #6
Да, я делаю через Консольное приложение Win32

Добавлено через 3 минуты
Все работает всем спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 19:52     Проверить правильность задания №2
Еще ссылки по теме:

Проверить код на правильность C++
Проверить правильность кода (задача, 1 курс) C++
Проверить правильность реализации метода Ньютона C++
Проверить правильность построения цикла C++
Проверить массив на правильность ввода C++

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

Или воспользуйтесь поиском по форуму:
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
09.09.2012, 19:52     Проверить правильность задания №2 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <numeric>
 
int main()
{
    std::vector<int> v_int;
    int number = 876;
    int val = 0;
 
    while (number)
    {
        val = number % 10;
        v_int.push_back(val);
        number /= 10;
    }
 
    int sum = accumulate(v_int.begin(), v_int.end(), 0);
 
    std::cout << ((sum % 2 == 0) ? "even" : "odd");
 
    return 0;
}
Yandex
Объявления
09.09.2012, 19:52     Проверить правильность задания №2
Ответ Создать тему
Опции темы

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