English 中文(简体)
地图/插图/编印在一份关联清单中......未能绘制成地图!
原标题:map/reduce/filter on a linked list... failing at map! (in C)

因此,我的准则...... 我的理解是,我应设立一个职能“地图”,作为理由发挥作用。 它没有按计划进行。 任何帮助都是完全令人惊讶的。

这里有可编纂的(并非可编纂的,但可以缩小的)守则版本:

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
int main(int argc, const char *argv[])
{
//it should be apparent that I am quite new to C, I have some java experience.
struct linkedList {
   int count;
   int num;
   struct linkedList *next;
};
struct linkedList *head, *tail, *curr;
int count1=0;
int i=0;

int square(int v) {return v=v*v;}

void map(int (*func)(int v), struct linkedList){
    struct linkedList2 *head, *tail, *curr;
    for(curr=head; curr!=NULL; curr=curr->next){
        curr->num=func(curr->num);
        printList();
    }
}

void start(){
    printf("This program will ONLY accept integer input.
");
    head=NULL;
    for(i=1;i<=4;i++) {
        count1++;
        curr=malloc(sizeof(struct linkedList));
        curr->count=count1;
        printf("Enter a number: ");
        scanf("%d", &curr->num);
        if(head==NULL) { head=curr; }
        else { tail->next=curr; }
        tail=curr;
        tail->next=NULL;
    }
    printf("A list has been created.
");
}

void printList(){
    printf("The list now contains these numbers: ");
    for(curr=head;curr!=NULL;curr=curr->next){
        printf("%d, ", curr->num);
    }
    printf("
");
}

 start();
 printList();

 map(square, linkedList);
 printList();
 system("PAUSE");   
 return 0;
}
最佳回答

在<代码>main内界定所有这些组成部分和职能,并不是你为什么要写C. Move the int main(int argc, const char *argv[]{,在后正确。 ∗∗∗∗ 仅载有<代码>main的实际代码。

Moreover, your definition of map appears to have an unfinished prototype. Instead of void map(int (*func)(int v), struct linkedList), in which the second parameter is unused, you want void map(int (*func)(int v), struct linkedList* head) (and then get rid of the declaration of head on the next line). Moreover, linkedList2 here presumably should be changed to linkedList. In addition, your attempt to call map in main with map(square, linkedList) is nonsensical; you want to use map(square, head).

问题回答

暂无回答




相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签