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

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

09.09.2012, 16:56. Просмотров 1890. Ответов 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> то возникает такая же ошибка

Исправьте что не так пожалуйста. Если не сложно добавьте объяснение
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2012, 16:56
Ответы с готовыми решениями:

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

Правильность составления задания
Оцените качество составления задания (вложение) Не очень понятна общая логика и смысл некоторых...

Проверить правильность ввода
cin &gt;&gt; RMB_MAX; if (RMB_MAX &lt; 0) { RMB_MAX = 0; } else if (RMB_MAX &gt; 100) { RMB_MAX = 100;...

Проверить код на правильность
Ребят написала код но не уверена что правильно.К сожалению Как проверить не знаю. проверьте...

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

Добавлено через 1 минуту
P.S.
C++
1
2
#include "stdafx.h"
#include <conio.h>
не нужны. У меня работает без них.
1
0 / 0 / 1
Регистрация: 11.12.2011
Сообщений: 75
09.09.2012, 17:22  [ТС] 3
Стоит Visual Studio 2012, исправил как ты сказал, может я не тот проект создаю?
0
162 / 162 / 68
Регистрация: 23.02.2011
Сообщений: 392
09.09.2012, 17:28 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;
}
1
47 / 46 / 18
Регистрация: 11.12.2011
Сообщений: 147
09.09.2012, 17:30 5
W0ks, возможно ты создаешь через Windows Console Application или как-то так. Тогда без stdafx работать не будет. Я делаю через Empty Project.
1
0 / 0 / 1
Регистрация: 11.12.2011
Сообщений: 75
09.09.2012, 17:41  [ТС] 6
Да, я делаю через Консольное приложение Win32

Добавлено через 3 минуты
Все работает всем спасибо
0
145 / 67 / 14
Регистрация: 30.12.2011
Сообщений: 137
09.09.2012, 19:52 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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2012, 19:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Проверить правильность кода
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; // новый стандарт - хидеры не имеют расширения using...

Проверить программу на правильность
Задание: Ввести последовательность чисел (окончание ввода – 0) и вывести их в обратном порядке c...

Проверить код на правильность
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_CTYPE,&quot;Russian&quot;);...

Проверить код на правильность
Здравствуйте! Помогите пожалуйста проверить код на правильность,т.к. почему-то не компилируется....


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

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

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