Masalah switch dan loop di bahasa c

Mengapa kok abis masuk ke case, tgl_out nya ngga jalan ? tapi kalau default, tgl_outnya jalan ?

#include #include #include

#define week 7 #define fday_leng 3 #define debug

void tgl_out(int n);

main(){ int n_month, i_day, i; char fday[fday_leng]; printf("*** Program calendar of month ***\n"); printf("Type number of month and 3 digit first day name, ex: \"30 thu\"\n");

printf("prob2?> ");scanf("%d %s", &n_month, &fday); if(fday){ if(!(strcmp(fday, "sun"))) i_day=0; else if(!(strcmp(fday, "mon"))) i_day=1; else if(!(strcmp(fday, "tue"))) i_day=2; else if(!(strcmp(fday, "wed"))) i_day=3; else if(!(strcmp(fday, "thu"))) i_day=4; else if(!(strcmp(fday, "fri"))) i_day=5; else if(!(strcmp(fday, "sat"))) i_day=6; #ifdef debug printf("debug: i_day = %d\n", i_day); #endif } else { #ifdef debug printf("debug: first day name unrecognized !\n"); #endif exit(0); }

printf("\n CALENDAR FOR THE MONTH \n"); printf(" sun mon tue wed thu fri sat \n"); switch(i_day){ case 0: printf(" %-3d ", 1); tgl_out(n_month); break; case 1: printf(" %3c %-3d ", 32, 1); tgl_out(n_month); break; case 2: printf(" %8c %-3d ", 32, 1); tgl_out(n_month); break; case 3: printf(" %13c %-3d ", 32, 1); tgl_out(n_month); break; case 4: printf(" %19c %-3d ", 32, 1); tgl_out(n_month); break; case 5: printf(" %24c %-3d ", 32, 1); tgl_out(n_month); break; case 6: printf(" %29c %-3d ", 32, 1); tgl_out(n_month); break; default: printf(" %-3d ", 1); tgl_out(n_month); } putchar('\n'); }

void tgl_out(int n){ for(int i=2;i<=n;i++){ printf(" %-3d ", i); if(i%7==0) putchar('\n'); } }

avatar KrezUser
@KrezUser

4 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban