#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; } } }
刚才没看仔细,是这里的问题,指针被你用了一次,再用的时候,需要还原
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
- ¥15 C# datagridview 单元格显示进度及值
- ¥15 thinkphp6配合social login单点登录问题
- ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 虚心请教几个问题,小生先有礼了
- ¥30 截图中的mathematics程序转换成matlab