花花师姐 发表于 2020-6-12 06:54:23

用c语音怎么写啊?新手求助

积分抽奖描述:
为回馈用户,信用卡中心举行抽奖活动,抽奖规则为:信用卡积分为特定数字的客户为幸运客户。客户已经按照积分多少排序。
输入1:以字符串形式表示的,已经排序好的客户信用卡积分列表(姓名:积分,姓名:积分)。
输入2:幸运信用积分数。
输出:中奖客户姓名。没有中奖客户输出字符串NONE;多个客户用,分割。
示例:输入1:tom:188,jim:288,mike:688,jimi:888
         输入2: 688         输出:mike
         解释:tom:188表示tom积分为188分,找到积分为688的中奖客户姓名为mike。

Shaky_00 发表于 2020-6-13 10:19:16

结构体链表就能做,还需要吗?需要可以给你写一个

Shaky_00 发表于 2020-6-13 10:43:59

#include<stdio.h>
#include<stdlib.h>

typedef struct user{
        char name;
        int point;
        struct user *next;
}User;

//建立用户结构体链表
void CreateUserList(User *L)
{
        char c;
        int i, count=0;
        User *p, *pre;
        pre = L;
        while((c = getchar()) != '\n')
        {
                if(c >= 'a' && c <= 'z')
                {
                        p = (User *)malloc(sizeof(User));
                        p->name = c;
                        count = 1;
                        while((c = getchar()) != ':')
                        {
                                p->name = c;
                                count++;
                        }
                        for(i=count; i<5; i++)
                        {
                                p->name = '#';
                        }
                        scanf("%d", &p->point);
                        pre->next = p;
                        p->next = NULL;
                        pre = p;
                }
        }
}

void PrintUserList(User *L)
{
        User *p;
        int i;
        p = L->next;
        while(p != NULL)
        {
                for(i=0; i<5; i++)
                {
                        if(p->name != '#')
                                printf("%c", p->name);
                }
                printf(":%d ", p->point);
                p = p->next;
        }
}

//查找结构体链表里对应point为输入值的那个结点
void FindLuck(User *L)
{
        User *p;
        int target, i;
        p = L->next;
        scanf("%d", &target);
        while(p->point != target)
                p = p->next;
        for(i=0; i<5; i++)
        {
                if(p->name != '#')
                        printf("%c", p->name);
        }
}
int main()
{
        User L;
        CreateUserList(&L);
        //PrintUserList(&L);用于测试建立链表
        FindLuck(&L);
        return 0;
}
页: [1]
查看完整版本: 用c语音怎么写啊?新手求助