Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2013, 07:55   #1
Sadviltee
Новичок
Джуниор
 
Регистрация: 13.09.2013
Сообщений: 2
Сообщение Мучиюсь с лабой (си)

lab3.doc

Заранее благодарю
Sadviltee вне форума Ответить с цитированием
Старый 13.09.2013, 11:13   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

В чем затруднения? Какое задание выполняете в 3-й лабораторной?

Самое простое что приходит в голову.
Не проверял, смотрите опечатки...
Код:
#include <stdio.h>
#include <stdlib.h>

int main() {
	int month;		// Номер месяца
	
	printf("Введите номер месяца: ");	scanf("%d", &month);
	switch(month) {
		case 1:
		case 2:
		case 3: { printf(" 1-й квартал. 1-е полугодие"); break; }
		case 4:
		case 5:
		case 6: { printf(" 2-й квартал. 1-е полугодие"); break; }
		case 7:
		case 8:
		case 9: { printf(" 3-й квартал. 2-е полугодие"); break; }
		case 10:
		case 11:
		case 12: { printf(" 4-й квартал. 2-е полугодие"); break; }
		default: printf("Вы ввели неверный номер месяца!!!"); break;
	}
	system("pause");
	return 0;
}
P.S. пожалуйста, пишите грамотноооооооо вашу тему...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 13.09.2013 в 11:31.
Bugrimov вне форума Ответить с цитированием
Старый 13.09.2013, 11:39   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Документ не открывал:
Код:
scanf("%d", &month);
--month;
if (month < 0 || month > 11)
    printf("Вы ввели неверный номер месяца!!!");
else
    printf("%d-й квартал. %d-е полугодие", month / 3 + 1, month / 6 + 1);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 13.09.2013, 12:50   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

BDA тоже неплохой вариант, надо взять на вооружение . По заданию switch нужен....
Чуть позже добавлю отзыв, пока не могу..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 13.09.2013 в 13:00.
Bugrimov вне форума Ответить с цитированием
Старый 13.09.2013, 17:51   #5
Sadviltee
Новичок
Джуниор
 
Регистрация: 13.09.2013
Сообщений: 2
По умолчанию

5, 4... не понял)
Sadviltee вне форума Ответить с цитированием
Старый 13.09.2013, 20:28   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Наработки есть какие-нибудь????
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 13.09.2013, 23:32   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

4-й номер. Ничего красивого не придумал, так что:
Код:
#include <fstream>

using namespace std;

int
main()
{
    ofstream O("output.txt");
    O << "#include <stdio.h>" << endl << "#include <stdlib.h>" << endl << endl << "int" << endl << "main()" <<
        endl << '{' << endl << "    int t;" << endl << "    scanf(" << '"' << "%d" << '"' << ", &t);" << endl <<
        "    switch (t) {" << endl;
    int a[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    for (int i = 1, m = 1, d = 0; i < 366; ++i) {
        if (++d > a[m]) d -= a[m++];
        O << "        case " << i << ": printf(" << '"' << "M = " << m << ", D = " << d << '"' << "); break;" << endl;
    }
    O << "        default: printf(" << '"' << "Error" << '"' << ");" << endl << "    }" << endl << "    getch();"
        << endl << "    return 0;" << endl << '}' << endl;
    O.close();
}
Запускаете эту программу (С++), а на выходе файл с кодом на си, решающий 4-ю задачу в лоб

5-й:
Код:
#include <stdio.h>
#include <stdlib.h>

int
main()
{
    int m, d;
    scanf("%d%d", &m, &d);
    switch (m) {
        case 12: d += 30;
        case 11: d += 31;
        case 10: d += 30;
        case 9: d += 31;
        case 8: d += 31;
        case 7: d += 30;
        case 6: d += 31;
        case 5: d += 30;
        case 4: d += 31;
        case 3: d += 28;
        case 2: d += 31;
        case 1: printf("%d", d); break;
        default: printf("Error");
    }
    getch();
    return 0;
}
Не учтен неправильный ввод d (оставляю на Вашей совести).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 13.09.2013 в 23:45.
BDA на форуме Ответить с цитированием
Старый 14.09.2013, 07:07   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Не учтен неправильный ввод d (оставляю на Вашей совести).
В таких задачах речь о проверке даже не идет... Хотя делать их, как мне кажется, все таки нужно...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 14.09.2013, 17:22   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Bugrimov, цитата из документа:
Цитата:
Предусмотреть ситуацию неправильного ввода исходных данных.
Просто тут можно разные "неправильные" данные придумать - числа не соответствуют разрешенному диапазону (например, 30 февраля) или пользователь вообще ввел строку символов вместо числа. Так что пусть ТС сам решает, насколько неправильные данные обрабатывать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 14.09.2013, 19:41   #10
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Поддерживаю !!!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с лабой (си) Defa4ka Помощь студентам 7 24.09.2009 00:19
помогите с лабой :( lily_88 Помощь студентам 3 28.10.2008 16:43