C printf数组int匹配格式

C printf数组int匹配格式,c,format-specifiers,C,Format Specifiers,这是c代码 int rhdDEboard2(){ int board[64]={0}; int rc; printf("\n"); for (rc=0;rc<8;rc++) printf("\t %i %i %i %i %i %i %i %i\n",board[rc]); printf("\n"); return 0; } int-rhdDEboard2(){ int板[64]={0}; int rc; printf(“\

这是c代码

int rhdDEboard2(){

    int board[64]={0};
    int rc;
    printf("\n");
    for (rc=0;rc<8;rc++)
        printf("\t %i %i %i %i %i %i %i %i\n",board[rc]);
    printf("\n");
    return 0;
}
int-rhdDEboard2(){
int板[64]={0};
int rc;
printf(“\n”);

对于(rc=0;rc,正如评论者所提到的,您应该尝试任何一种方法

int rhdDEboard2() {

    int board[64]={0};
    int i,j;
    printf("\n");
    for (i=0;i<8;i++) {
        printf("\t");
        for(j=0;j<8;j++)
            printf(" %i",board[(i*8)+j]);
        printf("\n");
    }
    printf("\n");
    return 0;
}
int-rhdDEboard2(){
int板[64]={0};
int i,j;
printf(“\n”);

对于(i=0;i您在格式化字符串中有8个
%i
,但您只有1个
板[rc]
在其余的参数中。它抱怨其他7个没有相应的参数。为什么您声明了一个包含64个元素的数组,但只打印前8个?嗨,Barmar..感谢您的帮助回答…关于编辑到:printf(“\t%i%i%i%i%i%i%i\n”,board[rc],board[rc],board[rc],board[rc]board[rc],线路板[rc],线路板[rc],线路板[rc]);我现在得到了我想要的8x8线路板输出…我在8条新行上反复打印8个元素,以形成8x8输出的线路板结构/显示。我应该用更好的方法吗?@rpd他们用你修复它的方法,它现在将打印相同的值8次。使用
线路板[rc*8]。线路板[rc*8+1],…,线路板[rc*8+7]).
非常感谢您提供的代码示例的帮助性回复。我很尴尬,我没有看到或完全理解这个警告。我想如果printf语句中的参数说明符太少或太多,编译器会说太少或太多!它确实说它希望匹配辩论但我没有领会它的意思!希望我已经吸取了教训,不会再犯那个错误了!祝:-)
int rhdDEboard2() {

    int board[64]={0};
    int rc;
    printf("\n");
    for (rc=0; rc<64; rc+=8)
        printf("\t %i %i %i %i %i %i %i %i\n",
                board[rc]  ,board[rc+1],board[rc+2],board[rc+3],
                board[rc+4],board[rc+5],board[rc+6],board[rc+7] );
    printf("\n");
    return 0;
}