Как указать строку в текстовом документе
Моя программа должна распечатать будний день в зависимости от целого числа (1-7), которое я получаю из текстового документа. Как я могу это сделать?
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> int main() { FILE*fp; fp = fopen("week.txt", "r"); double m, d, millenial, decade; int y, weekdaynumber, wdnfinal; printf("enter a date in format YYYY-MM-DD. The weekday will be printed out.\n"); scanf("%d-%lf-%lf", &y, &m, &d); millenial = (y - (y % 100))/100; decade = (y % 100); if ( m == 1 || m ==2){ // month formula by Reverend Zeller m = m+10; } else{ m = m-2; } //printf("%lf ;;; %lf ;;; %lf", y, m, d); weekdaynumber = (d + (int)floor((13*m)-1)/5 + decade + (int)floor(decade/4) + (int)floor(millenial/4) - 2*millenial); // formula by Reverend Zeller wdnfinal = weekdaynumber % 7;
Rick York
Если это не работает для вас, то вам нужно ознакомиться с вашим отладчиком и выяснить, где он идет не так. На вашем месте я бы разбил это длинное вычисление на ряд более мелких, чтобы вы могли видеть результаты каждого подвыражения в отладчике. Конечно, всегда есть отладка в стиле printf, но это гораздо более утомительно.
Richard MacCutchan
Не используйте типы float для интегральных значений (месяц и день), так как это может привести к неточным ответам.
Кроме того, неясно, в чем заключается проблема. Пожалуйста, добавьте некоторые правильные детали к вашему вопросу.
Member 14955513
Значение "Weekdaynumber" представляет, какой день недели это число (1 = понедельник, 2= вторник и так далее). Однако я должен распечатать будни в виде строки из текстового документа, где они записаны. Это упражнение об управлении файлами, и мне не хватает только этой части кода.
Richard MacCutchan
Так в чем же трудность? Мы понятия не имеем, что находится в текстовом файле и как он связан с номерами дней.