Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Ошибка в коде программы!


Автор: jazzben 20.9.2008, 17:04
ВОТ УСЛОВИЕ: 

Дни недели пронумерованны следующим образом:1-понедельник,2-вторник,..........6-суббота,7-воскресенье.Дано целое число К,лежащее в диапозоне 1-365.Определить номер дня недели для К-го дня года,если известно,что в этом году 1 января было субботой.  


#include <iostream>
using std::cout;
using std::cin;
void main(void) 
{ 
int n; 
cout<<"n=";cin>>n; 
int x=n%7;
switch(x)
{
case 0:
    cout<<"Friday\n";
    break;
case 1:
    cout<<"Saturday\n";
    break;
case 2:
    cout<<"Sunday\n";
    break;
case 3:
    cout<<"Monday\n";
    break;
case 4:
    cout<<"Tuesday\n";
    break;
case 5:
    cout<<"Wednesday\n";
    break;
default:
    cout<<"Thursday\n";
}
}

этот код не подходит,жму F9 и всё вылетает((

Автор: IKM2007 20.9.2008, 17:25
Цитата

Ошибка в коде программы! программа работает неправильно.

1.Название темы должно отображать ее суть.
2.Почему выложил в Центре Помощи? Ты ведь уже создал тему с этим вопросом! http://forum.vingrad.ru/forum/topic-228943/kw-код-раммы.htmlsmile 
3.Какая конкретная ошибка? У меня все правильно работает.

Автор: jazzben 20.9.2008, 17:28
извините я найти тему не мог!!!! А что название не отображает суть?!!              
у меня почему то всё время выводит Saturday,,,,,

Добавлено @ 17:30
я что то по условию понять не могу что он у меня должен выводить??

Добавлено @ 17:41
ВОТ я немножко код отредактировал: 

Код

#include <iostream.h>
#include <conio.h>
void main(void)
{
int n,a,b,c,e,f,g;
cout<<"n=";cin>>"n";
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"c=";cin>>c;
cout<<"e=";cin>>e;
cout<<"f=";cin>>f;
cout<<"g=";cin>>g;
int x=n%7;
switch(x)
{
case 0:
cout<<"Ponedelnik";cin>>"n";
case 1:
cout<<"Vtornik";cin>>a;
break;
case 2:
cout<<"Sreda";cin>>b;
break;
case 3:
cout<<"4etverg";cin>>c;
break;
case 4:
cout<<"Pyatnica";cin>>e;
break;
case 5:
cout<<"Sybbota";cin>>f;
break;
default:
cout<<"Voskressenie";cin>>g;
}
getch();
}
 

Когда я в программе ввожу
n=1
a=2
b=3
c=4
e=5
f=6
g=7 
то он пишет Vtornik  (((((((((((((((((((

Автор: IKM2007 20.9.2008, 18:00
 smile  smile  smile 

Зачем тебе 7 переменных, если используешь только один?(В switch-е)
И зачем в switch-е cin-ы.
Цитата(jazzben @  20.9.2008,  17:28 Найти цитируемый пост)
то он пишет Vtornik  (((((((((((((((((((

n=1 => x=1%7=1 => работает case 1 => Печатает вторник.
Ты хоть понял код, который я написал?Если есть вопросы, задавай, отвечу. smile 
Но, лучше читай книжку для начинающих.  smile 

Автор: jazzben 20.9.2008, 18:03
Я не понял в коде что такое switch(x) 
Case и Break !!! я ваш код прописываю жму F9  пишу любую цифру жму Enter и всё вылетает!!!.....блин я врубится не могу!!!Мне очень нужно сделать эту и ещё 1 прогу ,а то в понедельник отчислят(((((( 

.....а и ёще зачем в конце } два раза и где писать getch (); ?

Автор: IKM2007 20.9.2008, 18:08
Цитата(jazzben @  20.9.2008,  18:03 Найти цитируемый пост)
я ваш код прописываю жму F9  пишу любую цифру жму Enter и всё вылетает!!!

То есть дает ошибку? Или не то пишет, если второе, то что конкретно пишет?

Цитата(jazzben @  20.9.2008,  18:03 Найти цитируемый пост)
Мне очень нужно сделать эту и ещё 1 прогу ,а то в понедельник отчислят((((((

Давай другую прогу(в новой теме), чем смогу, помогу.

Автор: jazzben 20.9.2008, 18:19
НЕТ ОШИБКУ НЕ ДАЁТ.......жму F9 появляется чёрное окно пишу любой символ например 1 жму Enter и это чёрное окно вылетает!!!! 
Лан сейчас создам другую тему

Автор: IKM2007 20.9.2008, 18:23
Добавь в конце system("pause").Так
Код

#include <iostream>
using std::cout;
using std::cin;
void main(void) 
{ 
int n; 
cout<<"n=";cin>>n; 
int x=n%7;
switch(x)
{
case 0:
    cout<<"Friday\n";
    break;
case 1:
    cout<<"Saturday\n";
    break;
case 2:
    cout<<"Sunday\n";
    break;
case 3:
    cout<<"Monday\n";
    break;
case 4:
    cout<<"Tuesday\n";
    break;
case 5:
    cout<<"Wednesday\n";
    break;
default:
    cout<<"Thursday\n";
}
system("pause");
}


Добавлено через 4 минуты и 27 секунд
Цитата(jazzben @  20.9.2008,  18:03 Найти цитируемый пост)
Я не понял в коде что такое switch(x) Case и Break !!!

Можешь читать http://www.citforum.ru/programming/cpp_ref/ref_6.shtml или http://www.cyberguru.ru/programming/cpp/cpp-velvet-way-page61.html.

Автор: jazzben 20.9.2008, 18:36
попробовал это код теперь просто появлется 
n= , я пишу любое число от 1 до 7 ( например написал 3 под 3 номером там Sunday  и он выводит Sunday)

Автор: IKM2007 20.9.2008, 18:44
То есть все правильно? если да, поставь тему решенной.(В верхнем, правом углу страницы.)

Автор: jazzben 20.9.2008, 18:52
Я просто не очень понимаю что он должен выводить  
ВОТ УСЛОВИЕ: 

Дни недели пронумерованны следующим образом:1-понедельник,2-вторник,..........6-суббота,7-воскресенье.Дано целое число К,лежащее в диапозоне 1-365.Определить номер дня недели для К-го дня года,если известно,что в этом году 1 января было субботой.  


ладно пока оставим открытой тему!!!МОЖЕТ ЕЩЁ КТО ДОБРЫЙ НАПИШЕТ!!!!

Автор: IKM2007 20.9.2008, 19:14
jazzben, запускай прогу,первый раз вводи 1, во второй раз 2, и т.д. до 10, и скажи, что выводит прога каждый раз.

Автор: jazzben 20.9.2008, 19:27
1 раз-Saturday 
2-sunday 
3-monday 
4-tuesday
5-wednesday
6-thursday
7-friday
8-saturday
9-sunday 
10-monday 
11-tuesday

Добавлено через 7 минут и 37 секунд
ВСё всё работает!!! ТУТ ОДИН СПЕЦ ИЗ ЮЖНОГА БУТОГА позвонил мне и поставил на путь нужный....

Автор: IKM2007 20.9.2008, 19:37
jazzben, программа работает правильно, но кажется я неправильно понял, что он должен выводить.  smile 

Цитата(jazzben @  20.9.2008,  18:52 Найти цитируемый пост)
Дни недели пронумерованны следующим образом:1-понедельник,2-вторник,..........6-суббота,7-воскресенье.

То есть программа должна выводить 1-если день недели понедельник, 2-если вторник и т.д. до 7-воскресение.
Вот код.
Код

#include <iostream>
using std::cout;
using std::cin;
void main() 
{ 
int n; 
cout<<"n=";cin>>n; 
cout<<(!(n%7+5)%7?7:(n%7+5)%7)<<"\n";
}


Автор: jazzben 20.9.2008, 19:53
нет там написано 1 января было субботой-значит 2 января должно быть воскрессеньем 3-понедельником    1-суббота 2-воскр 3- пон 4-вторник 5 -среда и тд

Автор: IKM2007 20.9.2008, 20:03
Цитата(jazzben @  20.9.2008,  17:04 Найти цитируемый пост)
Дни недели пронумерованны следующим образом:1-понедельник,2-вторник,..........6-суббота,7-воскресенье.Дано целое число К,лежащее в диапозоне 1-365.Определить номер дня недели для К-го дня года,если известно,что в этом году 1 января было субботой.  

То есть 1-понедельник, 2-вторник и т.д..
jazzben, здесь уже ты решай, если прога должна выводить названия дней недели(понедельник,вторник,...), то первый код, если номер дня недели(1,2,3,4,5,6,7), то второй код.

Автор: jazzben 21.9.2008, 12:18
Всё я разобрался Спасибо тебе огромное!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)