结构体 关于调用整形数组
本帖最后由 理想小青年 于 2018-5-12 16:31 编辑#include <stdio.h>
#define M 3
#define F 2
struct dog
{
char name;
int sroce;
};
void main()
{
int i,j;
char ch;
char *chh = ch;
struct dog man={{"二哈",0},{"金毛",0},{"萨摩",0}};//一个结构化二维数组
printf("欢迎参加狗王选拔:\n");
printf("狗王候选:二哈,金毛,萨摩\n");
for(i=0;i<5;i++) //一共投票五次(5人选票)
{
printf("第%d位投选狗王,请输入你支持的狗王: ",i+1);
gets(chh);//接收选票名字
for(j=0;j<M;j++)
{
if(strcmp(man->name,chh))
{
continue;
}
else
{
printf("%d\n",man->sroce);
//man->sroce += 1;//选举字符串 与 数组一样,累计+1
}
}
}
for(i=0;i<M;i++)
{
printf("%s的选票数为: %d票\n",man->name,man->sroce);
}
}
为什么man->sroce不应该取值是一个int类型的数吗?为什么是一串未知的数组1开头的,初始化为0,累计+=1的话会报错error C2106: '+=' : left operand must be l-value
不懂 求大神指点 {:10_256:}人造人大神已帮忙梳理代码如下:
#include <stdio.h>
#include <string.h>
#define MAX 100
struct Vote
{
char name;
int score;
};
int main(void)
{
struct Vote va;
int m = 0;
struct Vote tmp;
printf("欢迎参加狗王选拔:\n");
printf("狗王候选:二哈,金毛,萨摩\n");
for(int i = 0; i < 5; ++i) // 一共投票五次(5人选票)
{
printf("第%d位投选狗王,请输入你支持的狗王: ", i + 1);
scanf("%s", tmp.name);
int flag = 0;
for(int j = 0; j < m; ++j)
{
if(strcmp(va.name, tmp.name) == 0)
{
flag = 1; // 找到了
va.score++;
}
}
if(flag == 0)
{
++m;
strcpy(va.name, tmp.name);
va.score = 1;
}
}
for(int i = 0; i < m; i++)
{
printf("%s的选票数为: %d票\n", va.name, va.score);
}
return 0;
}
原题是小甲鱼的 选票小游戏{:10_256:}输入其余的字符串(非狗王竞选也能不给予识别) @BngThea @lwl19880225 @人造人 结构和二维数组两种数据结构都能用作该问题,你的代码同时使用引起了混乱
页:
[1]