#include <stdio.h>
#define N 3
struct Person
{
char name[16];
int count;
} ;
void Input(struct Person *ld, int n); //输入n个候选人的基本信息
void Vote(struct Person *ld, int n); //对n个候选人进行投票
void Output(struct Person *ld, int n); //输出n个候选人的基本信息
int main(int argc, char *argv[])
{
struct Person leader[N];
struct Person *p;
p=leader;
Input(p, N);
Vote(p, N);
Output(p, N);
return 0;
}
void Input(struct Person *ld, int n)
{
int i;
printf("输入%d个候选人的基本信息:姓名\n", n);
for (i = 0; i < n; i++,ld++)
scanf("%s", ld->name);
}
void Vote(struct Person *ld, int n)
{
int m, i, j; //m表示参加投票的人数
char ename[16];
printf("输入参加投票的人数:");
scanf("%d", &m);
printf("输入%d个参加投票人的投票情况\n", m);
for (i = 0; i < m; i++,ld++)
{
ld->count = 0;
}
for (i = 0; i < m; i++)
{
scanf("%s", ename);
for (j = 0; j < n; j++,ld++)
{
if (strcmp(ld->name, ename) == 0)
ld->count+=1;
}
}
}
void Output(struct Person *ld, int n)
{
int i;
printf("输出%d个候选人的基本信息:姓名,票数\n", n);
for (i = 0; i < n; i++,ld++)
{printf("%s %d\n", ld->name, ld->count);}
}
为什么投票之后结果都显示0?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
关注 void Vote(struct Person *ld, int n) { int m, i, j; char ename[16]; struct Person *tmp; printf("输入参加投票的人数:"); scanf("%d", &m); printf("输入%d个参加投票人的投票情况\n", m); tmp=ld; for (i = 0; i < n; i++,tmp++) { tmp->count = 0; } for (i = 0; i < m; i++) { scanf("%s", ename); tmp=ld; for (j = 0; j < n; j++,tmp++) { if (strcmp(tmp->name, ename) == 0) tmp->count+=1; } } }
刚才没看仔细,是这里的问题,指针被你用了一次,再用的时候,需要还原
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本