C语言,信息录入问题!

garett 发布于 2012/06/24 11:40
阅读 302
收藏 1
/*建立结构体,用于建立自己的校友录,要求包括姓名(name)、电话(phone)、qq号(qq)、家庭所在地(address),并在主函数中实现至少 10个好友信息的输入和输出*/
#include "stdio.h"
#define STUD struct studen
#define N 2
struct studen
{
char name[15];
char phone[15];
char qq[15];
char address[20];
};
int Input(STUD stu,char i);
int Output(STUD stu,char i);
void main(void)
{
 char i;
 STUD stu[N];
 for(i = 0;i < N;i++)
  Input(stu[i],i);
 for(i = 0;i < N;i++)
  Output(stu[i],i);
 getch();
}

int Input(STUD stu,char i)
{
printf("please input the %d people \nname :",i+1);
scanf("%s",stu.name);
printf("phone :");
scanf("%s",stu.phone);
printf("qq :");
scanf("%s",stu.qq);
printf("address :");
scanf("%s",stu.address);
}
int Output(STUD stu,char i)
{
printf("the %d people \nname : %s \nphone : %s \nqq : %s \naddress : %s\n",i+1,stu.name,stu.phone,stu.qq,stu.address);
}

求指教!....为什么最后的Output输出的数据都是乱码。。求解释阿阿。。。。
加载中
0
g
garett
#include "stdio.h"
#define STUD struct studen
#define N 2
struct studen
{
char name[15];
char phone[15];
char qq[15];
char address[20];
};
int Input(STUD *p,char i);
int Output(STUD stu,char i);
void main(void)
{
 char i;
 STUD stu[N];
 STUD *p;
 for(i = 0;i < N;i++)
  {p = &stu[i];
  Input(p,i);  }
 for(i = 0;i < N;i++)
  Output(stu[i],i);
 getch();
}

int Input(STUD *p,char i)
{
printf("please input the %d people \nname :",i+1);
scanf("%s",p->name);
printf("phone :");
scanf("%s",p->phone);
printf("qq :");
scanf("%s",p->qq);
printf("address :");
scanf("%s",p->address);
}
int Output(STUD stu,char i)
{
printf("the %d people \nname : %s \nphone : %s \nqq : %s \naddress : %s\n",i+1,stu.name,stu.phone,stu.qq,stu.address);
}
痛苦加扭曲阿。。。。蛋疼。。。完全忘了穿进去的是形参。。。。改好了。。。。
0
leo108
leo108

char i

int i

中山野鬼
中山野鬼
回复 @garett : 输入数据没有写到你的结构体对应存储空间。只是放在堆栈里了。。。。
g
garett
。。不行阿。。不是范围问题。。是参数传递出问题了。。。找到问题在哪了。,。
leo108
leo108
回复 @garett : 把你代码里的所有char i替换成int i 就行了
g
garett
。。。不懂阿哥哥。。求解释。。
返回顶部
顶部