那个输出的功能运行不了,应该怎么修改呢?
而且这个指针的指向是怎样的?
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据您提供的代码段,我将逐步分析并提供可能的解决方案。
可能的原因:
xianshi
函数中,循环条件应为i < qw.size
,而不是i < qw.size
。xinjian
和xianshi
函数中,数组访问时使用了错误的语法。应该是qw->sz[qw->size]
,而不是qw->sz[qw.size]
。解决方案:
xianshi
函数中的循环条件。指针qw
的指向:
qw
是一个指向txl
结构体的指针。qw->sz
是qw
指向的txl
结构体中的sz
数组。qw->size
是qw
指向的txl
结构体中的size
成员。正确的指针使用:
void xinjian(txl *qw)
。->
操作符,如qw->sz[i].name
。// 假设txl结构体定义如下:
struct txl {
struct stu sz[max]; // 联系人数组
int size; // 联系人个数
};
// xinjian函数修正
void xinjian(txl *qw) {
printf("名字:");
scanf(" %s", qw->sz[qw->size].name);
// ... 其他字段的输入
qw->size++; // 新增联系人后,size需要增加
}
// xianshi函数修正
void xianshi(txl qw) {
int i;
for(i = 0; i < qw.size; i++) {
printf("名字:%s\n", qw.sz[i].name);
printf("单位: %s\n", qw.sz[i].address);
printf("性别: %s\n", qw.sz[i].sex);
printf("移动手机: %s\n", qw.sz[i].dianhua);
printf("分类: %s\n", qw.sz[i].leibie);
}
}
// main函数中调用xianshi的示例
txl qw; // 创建通讯录
qw.size = 0; // 个数初始化
// ... 其他代码
xianshi(qw); // 正确调用xianshi函数
请注意,以上代码仅为示例,具体实现可能需要根据您的完整代码进行调整。如果您需要进一步的帮助,请提供完整的代码或更详细的描述。