注册 登录
编程论坛 C++教室

各位大哥大姐,,帮帮忙,我这程序错哪了??

刘燕媚prince 发布于 2013-10-27 10:41, 861 次点击
#include "stdio.h"
#include "string.h"
struct leader
{
    char name[5];
    float count;
}stu[3]={{"Li",0},{"Liu",0},{"Xiao",0}};

main()
{
    int i,j;
    char Leader_name[10];
    for(i=0;i<3;i++)
    {
        scanf("%s",Leader_name);
        for(j=0;j<3;j++)
        {
        if(strcmp(Leader_name,stu[j].name)==0)
            stu[j].count++;
        }
    }
    for(i=0;i<3;i++)
    {
        printf("%s:%d\n",stu[i].name,stu[i].count);
    }
}

[ 本帖最后由 刘燕媚prince 于 2013-10-27 10:42 编辑 ]
10 回复
#2
blueskiner2013-10-27 14:21
能编译吗?能编译就没错,程序逻辑不对?那你题目或者需求,是什么?,别上来就错哪。。。连前提都没,谁也不知道错哪
#3
左手拉一只猫2013-10-27 20:22
#include "stdio.h"
#include "string.h"
struct leader
{
    char name[5];
    float count;
}stu[3]={{"Li",0},{"Liu",0},{"Xiao",0}};

main()
{
    int i,j;
    char Leader_name[10];
    for(i=0;i<3;i++)
    {
        scanf("%s",Leader_name);
        for(j=0;j<3;j++)
        {
        if(strcmp(Leader_name,stu[j].name)==0)
        {
            stu[j].count++;
            break;
        }
        }
    }
    for(i=0;i<3;i++)
    {
        printf("%s:%.f\n",stu[i].name,stu[i].count);
    }
}
没记错的话这个是书上的一道例题,错误的地方就是你在结构体中把Count变量设为float型,但是你输出的时候用的是%d输出的,所以你就杯具了。有两种改法,第一种是把输出改成 printf("%s:%.f\n",stu[i].name,stu[i].count);也就是我上面的改法。第二种方法就是把结构体里面的Count的数据类型改为整形的,即int  count....
这种小错误,其实细心就可以找出来的,加了个油哦!
#4
刘燕媚prince2013-10-28 08:14
回复 3楼 左手拉一只猫
谢谢你,真心的
#5
刘燕媚prince2013-10-28 08:20
回复 3楼 左手拉一只猫
可是,,大哥,我编译了还是不行啊,呜呜。。。
#6
刘燕媚prince2013-10-28 08:21
回复 2楼 blueskiner
就是输出不了结果啊,你能替我解决不
#7
peach54602013-10-28 08:46
以下是引用刘燕媚prince在2013-10-28 08:21:09的发言:

就是输出不了结果啊,你能替我解决不

学会描述问题先...
别人连你想干嘛都不知道,如何帮你解决问题...
#8
在这里爬起2013-10-28 10:13
程序代码:
#include "stdio.h"
#include "string.h"
struct leader
{
    char name[5];
    float count;
}stu[3]={{"Li",0},{"Liu",0},{"Xiao",0}};

void main()
{
    int i,j;
    char Leader_name[10];
    for(i=0;i<10;i++)
    {
        scanf("%s",Leader_name);
        for(j=0;j<3;j++)   
        if(strcmp(Leader_name,stu[j].name)==0)      
        {
            stu[j].count++;
            continue;
        }
      
      
    }
    for(i=0;i<3;i++)
    {
        printf("%s:%.f\n",stu[i].name,stu[i].count);
    }
}
我帮你改了下。你是想输入一个名字判断是否和定义的相同,相同的话就count加一。

[ 本帖最后由 在这里爬起 于 2013-10-29 11:34 编辑 ]
#9
左手拉一只猫2013-10-28 20:40
回复 5楼 刘燕媚prince
还有哪里出错了?
#10
Susake2013-10-28 20:41
...
#11
木容木水2013-10-29 11:26
学习了
1