小甲鱼投票系统作业题求助
#include <stdio.h>#include <stdlib.h>
#include<string.h>
struct person
{
char name;
int qua;
};//声明
struct person p={{"rose",0},{"vivi",0},{"jack",0}};//定义
void selectmost(struct person *p)//这个函数用于选出获得票数最高的人并打印出来
{
char *n;
int i,j=0;//j表示最多票数的人所对应的结构体数组中的下标
int max=p.qua;
for(i=1;i<3;i++)
{
if(max<p.qua)
j=i;
}
n=&p.name;----------------------------------@
puts(n);
}
void main()
{
int i;//计数变量
printf("welcome to people select system\n");
printf("please vote for rose,vivi,jack\n");
for(i=0;i<5;i++)
{
char c;
printf("第 %d vote for:",i+1);
printf("\n");
gets(c);
if(strcmp(p.name,c)==0)
{
p.qua++;
}
if(strcmp(p.name,c)==0)
{
p.qua++;
}
if(strcmp(p.name,c)==0)
{
p.qua++;
}
}
for(i=0;i<3;i++)
{
printf("票数 of %s is %d\n",p.name,p.qua);
}
selectmost(p);
}
我把selectmost这个函数中@(已在文中标出)所在行的代码n=&p.name改成*n=p.name后程序就不会正确运行出结果,希望好心的朋友能解答一下。{:9_221:} 我没太明白为什么要写成n=&p.name或者*n=p.name
这两种写法编译器都会报错呀。。。
你不是想输出名字吗,直接写n=p.name不就可以了? shuofxz 发表于 2016-2-24 16:35
我没太明白为什么要写成n=&p.name或者*n=p.name
这两种写法编译器都会报错呀。。。
你不是想 ...
我定义的n是一个字符型指针呀
shuofxz 发表于 2016-2-24 16:35
我没太明白为什么要写成n=&p.name或者*n=p.name
这两种写法编译器都会报错呀。。。
你不是想 ...
n是我定义的字符型指针呀
页:
[1]