题目和代码是这样,输出明显不对但是不知道是哪里不对,求指点qwq,刚学C没多久,总是有一些地方不会写
3条回答 默认 最新
- 技术专家团-小桥流水 2023-12-07 22:37关注
n的初始化放在vote函数或者begin函数中,另外,你用scanf("%s")读取名字,那么输入名字的时候不能有空格。
还有就是,vote函数中,比较名字的时候,需要遍历p数组的m个人进行比较,应该再 加一层for循环才对。
代码修改如下:#include <stdio.h> #include <string.h> #define m 5 struct VOT { char name[10]; int n; }; void begin(VOT* p) { int i=0; printf("候选人为:"); for(i=0;i<m;i++) { scanf("%s",p[i].name);//读取名字,名字中不能有空格 p[i].n = 0; //这里初始化n的值为0 } } void vote(VOT *p,int n) { printf("投标:\n"); int i,j; char s[10]; for(i=0;i<n;i++) { scanf("%s",s); //读取名字,名字中不能有空格 //比较名字 for(j=0;j<m;j++) //需要遍历m个人 { if(strcmp(s,p[j].name)==0) { p[j].n++; break; } } } //输出结果 printf("投票结果为:\n"); for(i=0;i<m;i++) printf("%s %d\n",p[i].name,p[i].n); } int main() { VOT vot[m],*p=vot; begin(p); vote(p,10); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
- ¥15 hive直连数据库模式插入mysql表数据失败(相关搜索:数据库)
- ¥30 不会,学习,有偿解答
- ¥15 SQL查询语句报错(检查)
- ¥15 此表中公式应该怎么写
- ¥15 求HI-TECH PICC 9.50 PL3安装包
- ¥15 下载ctorch报错,求解
- ¥15 如何入门学习c语言,单片机
- ¥15 idea 编辑语言的选择
- ¥15 Windows下部署Asmjit