| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1682 人关注过本帖
标题:输入一个数,查找一个链表中与这个数最接近的,并且输出?哪里有问题
只看楼主 加入收藏
wll19901105
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-12-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:36 
输入一个数,查找一个链表中与这个数最接近的,并且输出?哪里有问题
  //建立一个链表 找出与它最接近的数据
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct student
{
    char name[10];
    int age;
    struct student *next;

};

void find(struct student *head,int age)
{
    int array[4]={0};
    int max = 50;
    int j,temp;
    struct student *p = malloc(sizeof(struct student));
    struct student *q = NULL;
    p = head;
    int i = 0;
    while(p != NULL)
    {
         array[i] = (p->age)-age;
         p = p->next;
         if(array[i]<0)
               array[i] = 0 -array[i];
         i++;
         
    }
    for(j=0;j<4;j++)
    {
         if(array[j]<max)
         {
              max = array[j];
           temp = j;
         }
    }
    q =head;
    for(j=0;j<temp;j++)
        q = q->next;
    printf("%s",q->name);

}
int main()
{
    struct student stru[4] = {{"wang",24},{"wwe",27},{"wll",30},{"yyf",34}};
    int i;
    for(i=0;i<4;i++)
    {
           printf("%s %d",stru[i].name,stru[i].age);
           printf("\n");
    }
    find(stru,29);
    return 0;
}
搜索更多相关主题的帖子: age include 
2012-12-11 20:07
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:5 
貌似链表没有连起来啊,结构体的第三个元素没有指向下一个元素的地址。
貌似str是结构体数组的地址,不是头指针

新手发言,说错时候多

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-11 20:21
农民也疯狂
Rank: 2
来 自:伯纳乌
等 级:论坛游民
帖 子:48
专家分:56
注 册:2012-12-4
收藏
得分:5 
你这个stru不是以链表来组织的,函数调用的时候肯定也不能用处理链表的方法来处理撒

屌丝的世界不容懈怠
2012-12-11 20:22
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
这个不叫链表,这个是结构体数组
struct student stru[4] = {{"wang",24},{"wwe",27},{"wll",30},{"yyf",34}};


[fly]存在即是合理[/fly]
2012-12-11 20:23
wll19901105
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-12-4
收藏
得分:0 
回复 4楼 azzbcc
搞混了!我那个查找的函数应该没有问题吧!
2012-12-11 20:29
wll19901105
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-12-4
收藏
得分:0 
回复 3楼 农民也疯狂
明白了 谢谢啊
2012-12-11 20:29
农民也疯狂
Rank: 2
来 自:伯纳乌
等 级:论坛游民
帖 子:48
专家分:56
注 册:2012-12-4
收藏
得分:0 
    主函数这样构造链表

    struct student *stru = NULL;
    struct student *p1 = (struct student *)malloc(sizeof(struct student));
    struct student *p2 = p1;
    strcpy(p1->name, "wang");
    p1->age = 24;
    stru = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "wll");
    p1->age = 27;
    p2->next = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "yyf");
    p1->age = 30;
    p2->next = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "wwe");
    p1->age = 34;
    p2->next = p1;
    p1->next = NULL;

屌丝的世界不容懈怠
2012-12-11 20:32
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
有,p是不用给他分配空间的


[fly]存在即是合理[/fly]
2012-12-11 20:33
农民也疯狂
Rank: 2
来 自:伯纳乌
等 级:论坛游民
帖 子:48
专家分:56
注 册:2012-12-4
收藏
得分:0 
以下是引用农民也疯狂在2012-12-11 20:32:07的发言:

    主函数这样构造链表

    struct student *stru = NULL;
    struct student *p1 = (struct student *)malloc(sizeof(struct student));
    struct student *p2 = p1;
    strcpy(p1->name, "wang");
    p1->age = 24;
    stru = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "wll");
    p1->age = 27;
    p2->next = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "yyf");
    p1->age = 30;
    p2->next = p1;
    p2 = p1;

    p1 = (struct student *)malloc(sizeof(struct student));
    strcpy(p1->name, "wwe");
    p1->age = 34;
    p2->next = p1;
    p1->next = NULL;
然后再调用你的那个函数,find(stru,29);

屌丝的世界不容懈怠
2012-12-11 20:34
wll19901105
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-12-4
收藏
得分:0 
回复 7楼 农民也疯狂
为什么输出的是NULL呢   查找那出错了吗?
2012-12-11 20:41
快速回复:输入一个数,查找一个链表中与这个数最接近的,并且输出?哪里有问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051767 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved