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

Программа не выводит результат - C++

Восстановить пароль Регистрация
 
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 02:32     Программа не выводит результат #1
Всем привет! У меня есть программа, написанная мною, на 90% готовая, однако, в ней то ли чего-то не хватает, то ли ошибка какая-то, которая не выводится. Она просто закрывается после ввода года. Суть: пользователь вводит год, ему программа должна выдать кого это был год по Китайскому гороскопу.
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
#include <locale.h>
#include <conio.h>
#include <stdio.h>
void main()
    {
        setlocale(0, "rus");
        int y, year;
        printf("Введите год: ");
        scanf("%d",&y);
        year=y/12;
        year=y*12;
        y=y-year;
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        getch();
    }
Вот, собственно, сам код, прошу помощи гуру этого раздела форума.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 02:40     Программа не выводит результат #2
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
#include "stdafx.h"
#include <locale.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
void main()
    {
        setlocale(0, "rus");
        int y, year;
        printf("Введите год: ");
        
        cin>>y;
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        getch ();
        getch();
    }
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 02:49  [ТС]     Программа не выводит результат #3
faLek, #include "stdafx.h" - пишет в нем ошибка, не могу запустить, что можете подсказать?

Добавлено через 3 минуты
faLek, Ошибка 2 error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory c:\Users\Илья\documents\visual studio 2010\Projects\Laba5\Laba5\Laba_5.cpp 1
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 02:49     Программа не выводит результат #4
просто стерите тогда эту строчку...
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 02:52  [ТС]     Программа не выводит результат #5
faLek, попробовал без него - тоже самое, закрытие окна идет

Добавлено через 2 минуты
faLek, ввожу данные, он их считывает(наверное), но дальше ничего не происходит. Нажимаю ентер - закрытие окна программы
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 02:54     Программа не выводит результат #6
странно у меня предыдущая версия работает...
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 <locale.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
int main()
    {
        setlocale(0, "rus");
        int y;
        cout<<"Введите год: ";
        cin>>y;
        
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        
        system ("pause");
        return 0;
    }
Добавлено через 1 минуту
Цитата Сообщение от Toda Посмотреть сообщение
C++
1
2
3
year=y/12;
year=y*12;
 y=y-year
Да просто вы можете объяснить,что за глупые арифметические действия?
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 02:55  [ТС]     Программа не выводит результат #7
faLek, мда... ЧТо-то меня это начинает беспокоить, так как и следующая Ваша программа у меня не хочет работать(( Что это может быть?
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 02:56     Программа не выводит результат #8
какой у вас компилятор?
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 03:02  [ТС]     Программа не выводит результат #9
faLek, стесняюсь спросить:"Где его можно посмотреть?"

Добавлено через 3 минуты
faLek, вот что показал файл cl.exe:
Код
<configuration>
  <startup>
    <requiredRuntime safemode="true" imageVersion="v4.0.30319"/>
    <supportedRuntime version="v4.0.30319"/>
    <supportedRuntime version="v4.0"/>
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <publisherPolicy apply="no" />
    </assemblyBinding>
  </runtime>
</configuration>
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 03:06     Программа не выводит результат #10
как называется программа,куда вы закидваете код?

Добавлено через 37 секунд
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
#include <locale.h>
#include <conio.h>
#include <stdio.h>
void main()
    {
        setlocale(0, "rus");
        int y, year;
        printf("Введите год: ");
        scanf("%d",&y);
        
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        getch();
    }
Добавлено через 22 секунды
Попробуйте так
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.05.2013, 03:09     Программа не выводит результат #11
Цитата Сообщение от faLek Посмотреть сообщение
Да просто вы можете объяснить,что за глупые арифметические действия?
Там наверное что-то типа
C++
1
y%=12;
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 03:18     Программа не выводит результат #12
Nekto,
C++
1
2
3
year=y/12;
        year=y*12;
        y=y-year;
но я думаю эти действия не совсем похожи на деление с остатком
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
15.05.2013, 03:49  [ТС]     Программа не выводит результат #13
faLek, visual studio

Добавлено через 4 минуты
faLek, почему не похоже на деление? Пользователь вводит год. Мы делим число на 12(количество годов), получаем целую цифру без остатка, затем эту же цифру умножаем на 12 и отнимаем начальный год, так мы узнаем какой порядковый номер у данного года

Добавлено через 54 секунды
Цитата Сообщение от faLek Посмотреть сообщение
как называется программа,куда вы закидваете код?

Добавлено через 37 секунд
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
#include <locale.h>
#include <conio.h>
#include <stdio.h>
void main()
    {
        setlocale(0, "rus");
        int y, year;
        printf("Введите год: ");
        scanf("%d",&y);
        
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        getch();
    }
Добавлено через 22 секунды
Попробуйте так
Так вот работает

Добавлено через 18 минут
Я решил ее!! Сам решил эту задачу Вот полное решение:
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
#include <locale.h>
#include <conio.h>
#include <stdio.h>
void main()
    {
        setlocale(0, "rus");
        int y, year, year2;
        printf("Введите год: ");
        scanf("%d",&y);
        year=y/12;
        year2=year*12;
        y=y-year2;
        switch(y)
                {
            case 1: puts("Год крысы!"); break;
            case 2: puts("Год коровы!"); break;
            case 3: puts("Год тигра!"); break;
            case 4: puts("Год зайца!"); break;
            case 5: puts("Год дракона!"); break;
            case 6: puts("Год змеи!"); break;
            case 7: puts("Год лошади!"); break;
            case 8: puts("Год овцы!"); break;
            case 9: puts("Год обезьяны!"); break;
            case 10: puts("Год петуха!"); break;
            case 11: puts("Год собаки!"); break;
            case 12: puts("Год свиньи!"); break;
                }
        getch();
    }
Добавлено через 38 секунд
Буду рад, если кому-то помог, буду рад "спасибкам"
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.05.2013, 09:11     Программа не выводит результат #14
Цитата Сообщение от Toda Посмотреть сообщение
faLek, почему не похоже на деление? Пользователь вводит год. Мы делим число на 12(количество годов), получаем целую цифру без остатка, затем эту же цифру умножаем на 12 и отнимаем начальный год, так мы узнаем какой порядковый номер у данного года
Это можно заменить одним действием.
C++
1
y%=12;
И в case должны быть числа от 0 до 11.
ЗЫ и порядок надо другой сделать, если ты используешь реальные астрологические года, а не сам от фонаря придумал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2013, 23:13     Программа не выводит результат
Еще ссылки по теме:

C++ Программа не выводит результат
Программа подсчета строк, слов и символов не выводит результат C++
Программа выводит один результат C++

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

Или воспользуйтесь поиском по форуму:
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
16.05.2013, 23:13  [ТС]     Программа не выводит результат #15
Nekto,
C++
1
y%=12;
можно заменить на
C++
1
year=y/12;
По поводу кейсов - спасибо, я учту, а годы - да, Вы правы, сидел выдумывал
Yandex
Объявления
16.05.2013, 23:13     Программа не выводит результат
Ответ Создать тему
Опции темы

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