简体   繁体   English

格式的参数过多

[英]Too many arguments for format

#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.. 我认为printf是不正确的,但我不知道为什么。

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;
printf("Mjesec januar %d",g,". godine ima 31 dan.")

You have one formatting string "%d", but two arguments "g" and ". godine ima 31 dan." 您有一个格式字符串“%d”,但有两个参数“ g”和“。godine ima 31 dan”。

This looks much like php string concatenation. 这看起来很像php字符串连接。 What you probably want is 您可能想要的是

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

printf should receive at least one argument which is the string that you want to print. printf应该至少接收一个参数,该参数是您要打印的字符串。 If you want to pass variables inside it you should put it as arguments. 如果要在其中传递变量,则应将其作为参数。

reference: http://www.cplusplus.com/reference/cstdio/printf/ 参考: 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. 第一个参数是要打印的字符串,并且%d引用了g变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM