#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;
}
你能帮帮我吗?我不明白我的代码在哪里出错。编写消息的编译器:
“警告:格式的参数太多了。”
我认为printf不正确,但我不知道为什么......
答案 0 :(得分:1)
printf("Mjesec januar %d",g,". godine ima 31 dan.");break;
格式字符串中有一个%,所以应该(必须?)只传递一个附加参数。您正在传递另外两个参数。
不确定您要实现的目标,但其中任何一项都应该有效:
printf("Mjesec januar %d. godine ima 31 dan.",g);break;
printf("Mjesec januar %d%s",g,". godine ima 31 dan.");break;
答案 1 :(得分:1)
printf("Mjesec januar %d",g,". godine ima 31 dan.")
你有一个格式化字符串&#34;%d&#34;,但有两个参数&#34; g&#34;和&#34;。 godine ima 31 dan。&#34;
这看起来很像php字符串连接。您可能想要的是
printf("Mjesec januar %d godine ima 31 dan.", g);
答案 2 :(得分:0)
printf
应至少收到一个参数,即您要打印的字符串。如果你想在其中传递变量,你应该把它作为参数。
参考:http://www.cplusplus.com/reference/cstdio/printf/
因此,对于您的代码,您应该这样做:
printf("Mjesec januar %d godine ima 31 dan.", g );break;
第一个参数是您要打印的字符串,%d
引用g
变量。