経過分を入力してそれが今年のはじめから数えると今年の何月何日何分になっているかを表示するプログラムです。
#include <stdio.h>
int whattime(int minute, char**, char**);
int main(void)
{
int minute,Day;
char *Month,*Hhmm;
printf("経過分入力:");
fflush(stdout);
scanf("%d", &minute);
Day = whattime(minute, &Month, &Hhmm);
if(Day<0){
return (0);}
printf("%s %d %s\n", Month, Day, Hhmm);
return(0);
}
int whattime(int minute, char **month, char **hhmm)
{
int day, h, d, m ;
char ch1[2], ch2[2], ch3[2], ch4[2];
static char *pm;
static char time[6];
int mday[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
static char *name[12] = {"January", "Febrary", "March", "April", "May", "Jun", "July", "Augast", "September", "Octorber", "Novenber", "December"};
m = minute % 60;
minute -= m;
minute = minute / 60;
h = minute % 24;
minute -= h;
d = minute / 24;
if(d>=365){
printf("Error!!\n");
return (-1);
}
sprintf(ch1, "%d", h/10);
sprintf(ch2, "%d", h%10);
sprintf(ch3, "%d", m/10);
sprintf(ch4, "%d", m%10);
sprintf(time, "%s%s:%s%s", ch1,ch2,ch3,ch4);
pm=time;
// ここがわかりません・・・
*hhmm=pm;
return (day);
}
↑のような状況までは友達に教えてもらいつつなんとかできたのですが・・・dayの数値と月の名前を出す段階でどのようなループにすればday、月の名前をだすことができるのかわかりません。
ifを12個使えばできると思うのですが、それだと見栄えが悪いのでこれはやめておきたいと思うのです・・・
教えていただけないでしょうか?よろしくお願いします。
他にも間違いがあれば教えていただけるとうれしいです。
あとほんとに全く関係ないのですが、友達はどんどん理解していっていて私だけが置いてけぼり食らっているような感じがあります・・・
地道にやっていけば理解できるようになるのでしょうか?