求高手帮我看看!我实在不知道怎么改了!
#include <stdio.h>void main()
{
struct student
{
int su;
char *name;
}ren1 = { 0, "团子大家族"},ren2 = { 0, "死后的世界"},ren3 = { 0, "罪恶王冠"};
int a;
char i;
printf("欢迎大家进入年度最佳动漫投票现场!\n");
printf("候选动漫有:团子大家族, 死后的世界, 罪恶王冠");
for(a=1;a<11;a++)
{
printf("第%d位投票者请选择你所投票的动漫!:",a);
scanf("%c",&i);
if(i==ren1.name)
{
ren1.su++;
}
else if(i==ren2)
{
ren2.su++;
}
else
{
ren3.su++;
}
}
printf("团子大家族的票数为:%d\n死后的世界的票数为:%d\n罪恶王冠的为:%d\n", ren.su, ren.su, ren.su);
}
你想问的是什么? else if(i==ren2)
{
ren2.su++;
}
这里楼主少打了一个name
另外,楼主,比较char * 类型 还是用strcmp比较好。 看看什么个情况! 楼主这程序有几个错误,2l已经说了一个,第二个:printf("团子大家族的票数为:%d\n死后的世界的票数为:%d\n罪恶王冠的为:%d\n", ren.su, ren.su, ren.su);
ren1 = { 0, "团子大家族"},ren2 = { 0, "死后的世界"},ren3 = { 0, "罪恶王冠"};
楼主整个程序都没有定义ren数组,输出语句怎么用ren输出呢,第三个:char *name;
char i;
if(i==ren1.name)第四个:我不怎么确定,也说下了。说错了帮我指指。struct student
{
int su;
char *name;
}ren1 = { 0, "团子大家族"},ren2 = { 0, "死后的世界"},ren3 = { 0, "罪恶王冠"};
指针变量应该先给它申请内存空间然后再使用吧,像楼主这样的指针应该是野指针吧。 小亮1201 发表于 2013-4-21 22:49 static/image/common/back.gif
楼主这程序有几个错误,2l已经说了一个,第二个:楼主整个程序都没有定义ren数组,输出语句怎么用ren输出 ...
这位大哥说的最后一个问题 那是一个 是局部变量。 小亮1201 发表于 2013-4-21 22:49 static/image/common/back.gif
楼主这程序有几个错误,2l已经说了一个,第二个:楼主整个程序都没有定义ren数组,输出语句怎么用ren输出 ...
第三个问题,貌似楼主没有用到数组把 小亮1201 发表于 2013-4-21 22:49 static/image/common/back.gif
楼主这程序有几个错误,2l已经说了一个,第二个:楼主整个程序都没有定义ren数组,输出语句怎么用ren输出 ...
是啊,i是char是字符型的,name显然是一个字符串,楼主你if中的比较语句是i和name字符和字符串的比较啊所以出错了~~ 熊文杰 发表于 2013-4-21 23:04 static/image/common/back.gif
第三个问题,貌似楼主没有用到数组把
那个最后一行引用结构体里成员的应该是ren1.name不是ren.name 不能说_-的秘密 发表于 2013-4-21 23:30 static/image/common/back.gif
那个最后一行引用结构体里成员的应该是ren1.name不是ren.name
错了,是ren1.su #include <stdio.h>
void main()
{
struct student
{
int su;
char *name;
}ren1 = { 0, "tuan"},ren2 = { 0, "sihou"},ren3 = { 0, "zuie"};
int a;
char *b;
printf("欢迎大家进入年度最佳动漫投票现场!\n");
printf("候选动漫有:团子大家族, 死后的世界, 罪恶王冠\n");
for(a=1;a<11;a++)
{
printf("第%d位投票者请选择你所投票的动漫!:",a);
scanf("%s",b);
if(strcmp(*b,ren1.name))
{
ren1.su++;
}
else if(strcmp(*b,ren2.name))
{
ren2.su++;
}
else
{
ren3.su++;
}
}
printf("团子大家族的票数为:%d\n死后的世界的票数为:%d\n罪恶王冠的为:%d\n", ren1.su, ren2.su, ren3.su);
}
这是根据楼上几位提出的问题修改后的,还是有问题啊,编译没错,可是运行时一输入名字就报错。。。还是没有解决不知道怎么回事 儿。。。大家帮帮忙啊~~ 下面这个是vs2005里面编译的。
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
struct student
{
int su;
char *name;
}ren1 = { 0, "团子大家族"},ren2 = { 0, "死后的世界"},ren3 = { 0, "罪恶王冠"};
int a = 1;
char b = {0};//这里接收输入的字符
printf("欢迎大家进入年度最佳动漫投票现场!\n");
printf("候选动漫有:团子大家族, 死后的世界, 罪恶王冠\n");
for(a=1;a<11;a++)
{
memset(b,0,100);//初始化b中的数据
printf("第%d位投票者请选择你所投票的动漫!:",a);
scanf("%s",b);
if(!strcmp(b,ren1.name))
{
ren1.su++;
}
else if(!strcmp(b,ren2.name))
{
ren2.su++;
}
else if (!strcmp(b,ren3.name))
{
ren3.su++;
}
}
printf("团子大家族的票数为:%d\n死后的世界的票数为:%d\n罪恶王冠的为:%d\n", ren1.su, ren2.su, ren3.su);
while (1)
{
memset(b,0,100);//初始化b中的数据
printf("按q/Q退出:");
scanf("%s",b);
if (!strcmp(b,"q") || !strcmp(b,"Q"))
{
return 0;
}
}
return 0;
}
这个没什么问题 不能说_-的秘密 发表于 2013-4-21 23:38 static/image/common/back.gif
#include
void main()
你看下编译器会报字符串比较函数找不到‘\0’的错误。用数组把所有内容初始化0,这是最简单的办法,不过个人不建议这样,做好是用string类比较好一点。我把修改后的代码贴出来了 你的源代码发过来看看!谢谢! 怒力啊, 楼猪。支持你。 根据lz的想法。struct中的char *name应该改为char name这种形式(max_length应该自己定义)。scanf之后的if else比较应该使用strcmp或者strncmp来进行比较。最后在答应的时候,ren,ren,ren是错误的。你这样写是吧ren当成一个struct数组了,因此这里应该是ren1,ren2,ren3 亲!贴图片吧!这样好乱 强烈支持楼主ing……
我验证过了 可以用
本帖最后由 252013680 于 2013-4-22 17:21 编辑//验证过了
#include <stdio.h>
#include <string.h>
void main()
{
struct student
{
int su;
char *name;
}ren = { 0, "团子大家族"},ren2 = { 0, "死后的世界"},ren3 = { 0, "罪恶王冠"};
int a;
char *i;
printf("欢迎大家进入年度最佳动漫投票现场!\n");
printf("候选动漫有:团子大家族, 死后的世界, 罪恶王冠");
for(a=1;a<11;a++)
{
printf("第%d位投票者请选择你所投票的动漫!:",a);
scanf("%c",&i);
if(strcmp(i,ren.name))
{
ren.su++;
}
else if(strcmp(i,ren.name))
{
ren.su++;
}
else
{
ren.su++;
}
}
printf("团子大家族的票数为:%d\n死后的世界的票数为:%d\n罪恶王冠的为:%d\n", ren.su, ren.su, ren.su);
}
/*楼主你学C刚入门吧
还是先去看看数组和结构体~~你主要还是对结构体不够了解~~还有就是对c语言函数库不了解
你打开书的后面几页 ~~看看里面的库~~~然后去看看例题;最好自己打一遍;这样你再写着程序就不会有问题了*/
々风の彼端く 发表于 2013-4-22 00:57 static/image/common/back.gif
你的源代码发过来看看!谢谢!
12楼不就是我发的代码么。。。
页:
[1]
2