|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <stdlib.h>
- #include<string.h>
- struct person
- {
- char name[10];
- int qua;
- };//声明
- struct person p[3]={{"rose",0},{"vivi",0},{"jack",0}};//定义
- void selectmost(struct person *p)//这个函数用于选出获得票数最高的人并打印出来
- {
- char *n;
- int i,j=0;//j表示最多票数的人所对应的结构体数组中的下标
- int max=p[0].qua;
- for(i=1;i<3;i++)
- {
- if(max<p[i].qua)
- j=i;
- }
- n=&p[j].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[10];
- printf("第 %d vote for:",i+1);
- printf("\n");
- gets(c);
- if(strcmp(p[0].name,c)==0)
- {
- p[0].qua++;
- }
- if(strcmp(p[1].name,c)==0)
- {
- p[1].qua++;
- }
- if(strcmp(p[2].name,c)==0)
- {
- p[2].qua++;
- }
- }
- for(i=0;i<3;i++)
- {
- printf("票数 of %s is %d\n",p[i].name,p[i].qua);
- }
- selectmost(p);
- }
复制代码
我把selectmost这个函数中@(已在文中标出)所在行的代码n=&p[j].name改成*n=p[j].name后程序就不会正确运行出结果,希望好心的朋友能解答一下。
我没太明白为什么要写成 n=&p[j].name 或者 *n=p[j].name
这两种写法编译器都会报错呀。。。
你不是想输出名字吗,直接写n=p[j].name 不就可以了?
|
|