Onur Yağcı
Onur Yağcı

Reputation: 9

What is the reason of wrong output?

I was trying to write a code in c which converts a day month year format to dayRD day of Month Year

For example: 1 12 2020 must be converted like 1st day of december 2020.

I wrote the code as ı write down the page but the output is not the output that ı want.

#include<stdio.h>
int main() {
int day,month,year;
printf("Please enter date in a format of day month year");
scanf("%d%d%d",&day,&month,&year);

int dayconvert(day) {
    switch (day) {
        case 1:printf("%dst day of",day);
        break;
        case 2:printf("%dnd day of",day);
        break;
        case 3:printf("%drd day of",day);
        break;
        case 4:printf("%dth day of",day);
        break;
        case 5:printf("%dth day of",day);
        break;
        case 6:printf("%dth day of",day);
        break;
        case 7:printf("%dth day of",day);
        break;
        case 8:printf("%dth day of",day);
        break;
        case 9:printf("%dth day of",day);
        break;
        case 10:printf("%dth day of",day);
        break;
        case 11:printf("%dst day of",day);
        break;
        case 12:printf("%dnd day of",day);
        break;
        case 13:printf("%drd day of",day);
        break;
        case 14:printf("%dth day of",day);
        break;
        case 15:printf("%dth day of",day);
        break;
        case 16:printf("%dth day of",day);
        break;
        case 17:printf("%dth day of",day);
        break;
        case 18:printf("%dth day of",day);
        break;
        case 19:printf("%dth day of",day);
        break;
        case 20:printf("%dth day of",day);
        break;
        case 21:printf("%dst day of",day);
        break;
        case 22:printf("%dnd day of",day);
        break;
        case 23:printf("%drd day of",day);
        break;
        case 24:printf("%dth day of",day);
        break;
        case 25:printf("%dth day of",day);
        break;
        case 26:printf("%dth day of",day);
        break;
        case 27:printf("%dth day of",day);
        break;
        case 28:printf("%dth day of",day);
        break;
        case 29:printf("%dth day of",day);
        break;
        case 30:printf("%dth day of",day);
        break;
        
            
    }
    
}

int monthconvert(month) {
    switch (month) {
        case 1:printf("January");
        break;
        case 2:printf("February");
        break;
        case 3:printf("March");
        break;
        case 4:printf("April");
        break;
        case 5:printf("May");
        break;
        case 6:printf("June");
        break;
        case 7:printf("July");
        break;
        case 8:printf("August");
        break;
        case 9:printf("September");
        break;
        case 10:printf("October");
        break;
        case 11:printf("November");
        break;
        case 12:printf("December");
        break;
        
    }
}

printf("%d %d %d",dayconvert(day),monthconvert(month),year);

}

The output is January1st day of10 2020 when we enter 1 12 2020 values to day,month,year

Upvotes: 0

Views: 100

Answers (1)

pm100
pm100

Reputation: 50180

at the end you do this

 printf("%d %d %d",dayconvert(day),monthconvert(month),year);

there is no guarantee what order these function calls are made. In fact you have shown that printf calls monthconvert, then dayconvert.

Monthconvert prints out the month name, then dayconvert prints out the day name.

Upvotes: 2

Related Questions