#include <stdio.h>
#include <string.h>
typedef struct Pessoa{
char nome[150];
struct Datanasc{
int dia;
int mes;
int ano;
} datanasc;
char genero;
char pref;
} pessoa;
typedef struct Aresta{
int *pont;
int *pont2;
int peso;
} aresta;
void leitura(struct Pessoa c1){
printf("Entrei sua vagabunda\n");
int diaatual,mesatual,anoatual;
int numeroalunos;
int i;
scanf("%d/%d/%d",&diaatual,&mesatual,&anoatual);
scanf(" %d",&numeroalunos);
for(i=0;i<numeroalunos;i++){
scanf(" %[^\n]s", pessoa[i].nome);
scanf(" %d/%d/%d", &pessoa[i].datanasc.dia,&pessoa[i].datanasc.mes,&pessoa[i].datanasc.ano);
scanf(" %c %c", &pessoa.genero[i],&pessoa.pref[i]);
}
for(i=0;i<numeroalunos;i++){
printf(" %[^\n]s", pessoa[i].nome);
printf(" %d/%d/%d", pessoa[i].dia,pessoa[i].mes,pessoa[i].ano);
printf(" %c %c", pessoa[i].genero,pessoa[i].pref);
}
return;
}
int main(){
pessoa c1;
leitura(c1);
return 0;
}
我的代码出了什么问题? 第29,30,31,35,36,37行中的错误 - “pessoa”之前的预期表达 我的结构遇到了麻烦。可能它与我[i]的相关性
答案 0 :(得分:2)
在您的代码中,pessoa
是一种类型,而不是变量名称。所以,你不可能写
scanf(" %[^\n]s", pessoa[i].nome);
您可能希望使用pessoa
类型的变量。
话虽如此,C使用pass-by值进行函数参数传递。他们从c1
传递main()
(正常变量),并尝试填充leitura()
中不会提供您可能想要的内容。您需要从pessoa
传递main()
类型的数组,并在leitura()
内使用。