| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:这道题有点小问题,求各位一起想想,有一个地方不知怎么修改
只看楼主 加入收藏
wsclwps123
Rank: 1
来 自:安徽黄山
等 级:新手上路
帖 子:11
专家分:2
注 册:2014-2-12
收藏
 问题点数:0 回复次数:3 
这道题有点小问题,求各位一起想想,有一个地方不知怎么修改
编一个函数,让它显示链表中n出现的次数。。。。
可是我函数里面定义了一个i,i当n出现时候自增,可是它只会自增一次。
比如链表是1、2、3、4、5.输入找2,i=1;
可是我输入1、2、2、3、4时,结果仍然为2的个数i = 1;
我不知道怎么解决。朋友们帮帮忙!
多谢了!
搜索更多相关主题的帖子: 朋友 
2014-02-15 19:07
wsclwps123
Rank: 1
来 自:安徽黄山
等 级:新手上路
帖 子:11
专家分:2
注 册:2014-2-12
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#define N 10

struct node {
    int value;
    struct node * next;
};

struct node * chuangjian_link(void);
struct node * count_occurrences(struct node *list, int n);  /* 要求编写函数显示出n在链表中出现的次数 */
int main(void)
{
    struct node * head;
    int n;
    head = chuangjian_link();
    printf("你想查找的数据: ");
    scanf("%d", &n);
    count_occurrences(head, n);
    return 0;
}

struct node * chuangjian_link(void)
{
    struct node * head;
    struct node * temp;
    struct node * add_temp;

    head = (struct node *) malloc(sizeof(struct node));

    printf("请输入你创建的链表的第1个数据: ");
    scanf("%d", &head->value);
    head->next = NULL;
    temp = head;
    for (int i=1;i<5;i++) {
        add_temp = (struct node *) malloc(sizeof(struct node));
        if (add_temp == NULL) {
            printf("内存分配失败。\n");
            exit (1);
        }
        printf("请输入该链表的第%d个数据: ", i+1);
        scanf("%d", &add_temp->value);

        add_temp->next = NULL;
        temp->next = add_temp;
        temp = temp->next;
    }
    return head;
}

struct node * count_occurrences(struct node * list, int n)
{
    struct node * p;
    int i = 0;
    /* 开始搜索链表 */
    for (p = list; p != NULL; p = p->next) {
        if (p->value == n) {
            i++;
            printf("%d", i);
            return p;
        }
    }
    printf("链表里面没有%d!", n);
    return NULL;
}

从我看到Hello World起,我坚信,我可以修炼成为代码而生的人~
2014-02-15 19:07
wsclwps123
Rank: 1
来 自:安徽黄山
等 级:新手上路
帖 子:11
专家分:2
注 册:2014-2-12
收藏
得分:0 
第一个函数是创建链表,第二个函数是搜索这个链表。当p->value = n的时候,i自增一次  

从我看到Hello World起,我坚信,我可以修炼成为代码而生的人~
2014-02-15 19:08
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
程序代码:
    for (p = list; p != NULL; p = p->next) {
        if (p->value == n) {
            i++;
            printf("%d", i);
            return p;
        }
    }

u see see u
value == n
然后i++
然后print
然后return
没了

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2014-02-16 12:24
快速回复:这道题有点小问题,求各位一起想想,有一个地方不知怎么修改
数据加载中...
 
   



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

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