2016-11-04 18 views
0
#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; 
} 

Können Sie mir helfen? Ich verstehe nicht, wo der Fehler mit meinem Code ist. Der Compiler schreibt die Nachricht:Zu viele Argumente für das Format

"Warnung: zu viele Argumente für das Format".

Ich denke, dass printf nicht korrekt ist, aber ich weiß nicht, warum ..

Antwort

1
printf("Mjesec januar %d",g,". godine ima 31 dan.") 

Sie haben eine Formatierung Zeichenfolge „% d“, aber zwei Argumente „g“ und“godine ima. 31 Dan. "

Das sieht sehr ähnlich wie PHP-String-Verkettung. Was Sie wahrscheinlich wollen, ist

printf("Mjesec januar %d godine ima 31 dan.", g); 
+0

Dank Robin P :) –

0

printf sollte mindestens ein Argument erhalten, die die Zeichenfolge, die Sie drucken möchten. Wenn Sie Variablen darin übergeben möchten, sollten Sie sie als Argumente angeben.

Referenz: http://www.cplusplus.com/reference/cstdio/printf/

Also für Ihren Code, sollten Sie so tun:

printf("Mjesec januar %d godine ima 31 dan.", g);break;

erste Argument ist eine Zeichenfolge, die Sie in die g Variable drucken und %d Referenzen möchten.

1
printf("Mjesec januar %d",g,". godine ima 31 dan.");break; 

Dies hat zu einer% im Format-String, so soll (muss?), Nur ein zusätzlicher Parameter übergeben. Sie übergeben zwei zusätzliche Parameter.

Nicht sicher, was Sie versuchen zu erreichen, aber eine dieser sollte funktionieren:

printf("Mjesec januar %d. godine ima 31 dan.",g);break; 

printf("Mjesec januar %d%s",g,". godine ima 31 dan.");break;