C 从字符串打印字符值时出错

C 从字符串打印字符值时出错,c,C,用户必须输入一些项目,然后矩阵必须在3x4上打印它们 当我使用“%c”而不是“%s”时,它可以工作,但它只显示一个字符,但当我想用“%s”打印整个单词时,它就不能工作了 #include <stdio.h> #include <stdlib.h> #include <string.h> char objetos[10][10]; int main(){ int i,e; for (i=1;i<=3;i++){ fo

用户必须输入一些项目,然后矩阵必须在3x4上打印它们 当我使用“%c”而不是“%s”时,它可以工作,但它只显示一个字符,但当我想用“%s”打印整个单词时,它就不能工作了

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char objetos[10][10];

int main(){

    int i,e;

    for (i=1;i<=3;i++){
        for (e=1;e<=4;e++){
            system("cls");  
            printf("Ingrese El Objeto Personal %i-%i: ",i,e);
            scanf("%s",&objetos[i][e]);
        }
    }

    system("cls");
    for (i=1;i<=3;i++){
        for (e=1;e<=4;e++){ 
            printf("%s",objetos[i][e]);
        }
        printf("\n");
    }

    return 0;
}
#包括
#包括
#包括
char objetos[10][10];
int main(){
int i,e;
对于(i=1;i
但是当我想用“%s”打印整个单词时,它就不起作用了

格式说明符
%s
要求参数为
const char*
objetos[i][e]
不是
char*
类型,而是
char
类型。 改变这个

for (i=1;i<=3;i++){
   for (e=1;e<=4;e++){ 
   printf("%s",objetos[i][e]);
}
不正确,请在此处使用
%c
而不是
%s

例如

for (i=1;i<=3;i++){
     for (e=1;e<=4;e++){
         system("cls");  
         printf("Ingrese El Objeto Personal %i-%i: ",i,e);
         scanf(" %c",&objetos[i][e]);
     }
}

你有一个字符矩阵。你需要一个字符串矩阵。为什么你的循环从
1
开始?数组索引从
0
开始。所以不能在矩阵中使用字符串?如果我问了一些愚蠢的问题,我很抱歉。我是编程新手。你的矩阵是单个字符的矩阵。你不能存储多个字符单个
字符中的字符串。
scanf("%s",&objetos[i][e]);
for (i=1;i<=3;i++){
     for (e=1;e<=4;e++){
         system("cls");  
         printf("Ingrese El Objeto Personal %i-%i: ",i,e);
         scanf(" %c",&objetos[i][e]);
     }
}
for (i=0;i<=3;i++){
    for (e=0;e<=4;e++){
      scanf(" %c",&objetos[i][e]); /* give the whitespace before %c to avoid buffer overrun */
     }
}