Reputation: 3
#include <stdio.h>#include <stdlib.h>int main(){
int m,g,flag=0;
printf("Unesite mjesec i godinu (mjesec se unosi kao broj od 1 do 12):\n");
scanf("%d%d",&m,&g);
if (((g%4==0)&&(g%100!=0))||(g%400==0)) flag=1;
if (flag==0)
{
switch(m)
{
case 1:
printf("Mjesec januar %d",g,". godine ima 31 dan.");break;
case 2:
printf("Mjesec februar %d",g,". godine ima 28 dana.");break;
case 3:
printf("Mjesec mart %d",g,". godine ima 31 dan.");break;
case 4:
printf("Mjesec april %d",g,". godine ima 30 dana.");break;
case 5:
printf("Mjesec maj %d",g,". godine ima 31 dan.");break;
case 6:
printf("Mjesec jun %d",g,". godine ima 30 dana.");break;
case 7:
printf("Mjesec jul %d",g,". godine ima 31 dan.");break;
case 8:
printf("Mjesec avgust %d",g,". godine ima 31 dan.");break;
case 9:
printf("Mjesec septembar %d",g,". godine ima 30 dana.");break;
case 10:
printf("Mjesec oktobar %d",g,". godine ima 31 dan.");break;
case 11:
printf("Mjesec novembar %d",g,". godine ima 30 dana.");break;
case 12:
printf("Mjesec decembar %d",g,". godine ima 31 dan.");break;
}
}
else
{
switch(m)
{
case 1:
printf("Mjesec januar %d",g,". godine ima 31 dan.");break;
case 2:
printf("Mjesec februar %d",g,". godine ima 29 dana.");break;
case 3:
printf("Mjesec mart %d",g,". godine ima 31 dan.");break;
case 4:
printf("Mjesec april %d",g,". godine ima 30 dana.");break;
case 5:
printf("Mjesec maj %d",g,". godine ima 31 dan.");break;
case 6:
printf("Mjesec jun %d",g,". godine ima 30 dana.");break;
case 7:
printf("Mjesec jul %d",g,". godine ima 31 dan.");break;
case 8:
printf("Mjesec avgust %d",g,". godine ima 31 dan.");break;
case 9:
printf("Mjesec septembar %d",g,". godine ima 30 dana.");break;
case 10:
printf("Mjesec oktobar %d",g,". godine ima 31 dan.");break;
case 11:
printf("Mjesec novembar %d",g,". godine ima 30 dana.");break;
case 12:
printf("Mjesec decembar %d",g,". godine ima 31 dan.");break;
}
}
return 0;
}
Can you help me? I don't understand where is error with my code. The compiler writing the message:
"warning:too many arguments for format".
I think that printf isn't correct but I don't know why..
Upvotes: 0
Views: 3488
Reputation: 71
printf("Mjesec januar %d",g,". godine ima 31 dan.")
You have one formatting string "%d", but two arguments "g" and ". godine ima 31 dan."
This looks much like php string concatenation. What you probably want is
printf("Mjesec januar %d godine ima 31 dan.", g);
Upvotes: 1
Reputation: 6826
printf("Mjesec januar %d",g,". godine ima 31 dan.");break;
This has one % in the format string, so there should (must?) only be one additional parameter passed. You are passing two additional parameters.
Not sure what you are trying to achieve but either of these should work:
printf("Mjesec januar %d. godine ima 31 dan.",g);break;
printf("Mjesec januar %d%s",g,". godine ima 31 dan.");break;
Upvotes: 1
Reputation: 30
printf
should receive at least one argument which is the string that you want to print. If you want to pass variables inside it you should put it as arguments.
reference: http://www.cplusplus.com/reference/cstdio/printf/
So for your code, you should do like that:
printf("Mjesec januar %d godine ima 31 dan.", g );break;
First argument is a string that you want to print and %d
references to the g
variable.
Upvotes: 0