Não exibe os dados do Struct

Pessoal estou com problemas ao fazer essa atividade pois de digitar a idade ja pula para digitar o numero e o resultado não tem nada haver com o digitado a não ser o primeiro registro.

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

struct pessoa{
char nome[50], rua[50];
int idade, numero;
};
int main(){
struct pessoa p[2];
int i,j;
for(i=0;i<2;i++){
printf(“Nome: “);
gets(p[i].nome);
printf(“Idade: “);
scanf(”%d”,&p[i].idade);
printf(”\n”);
printf("Rua: ");
gets(p[i].rua);
printf(“Numero: “);
scanf(”%d\n”,&p[i].numero);

}
printf("-----------------------------\n");
for(j=0; j<2 ; j++ ){
printf("%s\n%d\n%s\n%d", p[j].nome,p[j].idade ,p[j].rua,p[j].numero);
// puts(p[j].nome);
//printf("\n%d\n",p[j].idade);
// puts(p[j].rua);
//printf("\n%d\n",p[j].numero);
}

return 0;

}

Acho que este tópico responde sua dúvida Função bugada

Vlw galera, ja deu certo aqui.