C/C++ "undefined reference to 'WinMain'" hatası

Duman0912

Centipat
Katılım
31 Aralık 2022
Mesajlar
780
Arkadaşlar kod bu, çalışmıyor. Bir bakabilir misiniz? Hatayı nerede yapıyoruz? ChatGPT ile cevap vermeyin, bir hata bulmuyor.

C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure to store passenger information
struct passenger {
    char name[50];
    char departure[50];
    char arrival[50];
    char date[10];
    int seat_number;
    struct passenger* next;
};

// Global head pointer of the linked list
struct passenger* head = NULL;

// Function to add a new passenger
void addPassenger() {
    struct passenger* newPassenger = (struct passenger*)malloc(sizeof(struct passenger));
 
    printf("Enter passenger name: ");
    scanf("%s", newPassenger->name);
 
    // Check for duplicate passenger
    if (checkDuplicate(newPassenger-> name)) {
        printf("Passenger with the same name already exists.\n");
        free(newPassenger);
        return;
    }
 
    printf("Enter departure: ");
    scanf("%s", newPassenger->departure);
 
    printf("Enter arrival: ");
    scanf("%s", newPassenger->arrival);
 
    printf("Enter date: ");
    scanf("%s", newPassenger->date);
 
    printf("Enter seat number: ");
    scanf("%d", &(newPassenger->seat_number));
 
    newPassenger->next = NULL;
 
    if (head == NULL) {
        head = newPassenger;
    } else {
        struct passenger* current = head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = newPassenger;
    }
 
    printf("Passenger added successfully.\n");
}

// Function to check for duplicate passenger
int checkDuplicate(char* name) {
    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            return 1; // Duplicate found
        }
        current = current->next;
    }
    return 0; // No duplicate found
}

// Function to delete a passenger
void deletePassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }
 
    char name[50];
    printf("Enter passenger name to delete: ");
    scanf("%s", name);
 
    struct passenger* current = head;
    struct passenger* prev = NULL;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            if (prev == NULL) {
                head = current->next;
            } else {
                prev->next = current->next;
            }
            free(current);
            printf("Passenger deleted successfully.\n");
            return;
        }
        prev = current;
        current = current->next;
    }
 
    printf("Passenger not found.\n");
}

// Function to search and display passenger information
void searchPassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

 
    char name[50];
    printf("Enter passenger name to search: ");
    scanf("%s", name);
 
    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            printf("Name: %s\n", current->name);
            printf("Departure: %s\n", current->departure);
            printf("Arrival: %s\n", current->arrival);
            printf("Date: %s\n", current->date);
            printf("Seat Number: %d\n", current->seat_number);
            }
    }
 
Son düzenleyen: Moderatör:
addPassenger fonksiyonunda checkduplicate kullanamazsınız. Çünkü henüz tanımlanmamış, ya checkduplicate'i addpassanger'ın yukarısına alacaksınız ya da function prototype yazacaksınız. Bir de en sonda parantez gerekiyor. Gördüklerim bunlar.
 
Son düzenleyen: Moderatör:
Düzenleme: Koymuşsun, yeni fark ettim. Koda biraz daha bakıyorum syntax hatası var mı diye.

Son hali buydu. İlk halini yapıştırmışım konuya.

C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure to store passenger information
struct passenger {
    char name[50];
    char departure[50];
    char arrival[50];
    char date[10];
    int seat_number;
    struct passenger* next;
};

// Global head pointer of the linked list
struct passenger* head = NULL;

// Function to add a new passenger
void addPassenger() {
    struct passenger* newPassenger = (struct passenger*)malloc(sizeof(struct passenger));

    printf("Enter passenger name: ");
    scanf("%s", newPassenger->name);

    // Check for duplicate passenger
    if (checkDuplicate(newPassenger->name)) {
        printf("Passenger with the same name already exists.\n");
        free(newPassenger);
        return;
    }

    printf("Enter departure: ");
    scanf("%s", newPassenger->departure);

    printf("Enter arrival: ");
    scanf("%s", newPassenger->arrival);

    printf("Enter date: ");
    scanf("%s", newPassenger->date);

    printf("Enter seat number: ");
    scanf("%d", &(newPassenger->seat_number));

    newPassenger->next = NULL;

    if (head == NULL) {
        head = newPassenger;
    } else {
        struct passenger* current = head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = newPassenger;
    }

    printf("Passenger added successfully.\n");
}

// Function to check for duplicate passenger
int checkDuplicate(char* name) {
    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            return 1; // Duplicate found
        }
        current = current->next;
    }
    return 0; // No duplicate found
}

// Function to delete a passenger
void deletePassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to delete: ");
    scanf("%s", name);

    struct passenger* current = head;
    struct passenger* prev = NULL;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            if (prev == NULL) {
                head = current->next;
            } else {
                prev->next = current->next;
            }
            free(current);
            printf("Passenger deleted successfully.\n");
            return;
        }
        prev = current;
        current = current->next;
    }

    printf("Passenger not found.\n");
}

// Function to search and display passenger information
void searchPassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to search: ");
    scanf("%s", name);

    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            printf("Name: %s\n", current->name);
            printf("Departure: %s\n", current->departure);
            printf("Arrival: %s\n", current->arrival);
            printf("Date: %s\n", current->date);
            printf("Seat Number: %d\n", current->seat_number);
            return; // exit function when passenger found
        }
        current = current->next;
    }

    printf("Passenger not found.\n");
}
 
Son düzenleyen: Moderatör:
Aldığınız hatayı yazar mısınız?
image.jpg
 
Son düzenleme:
Hata yukarıda bahsettiğim gibi, addpassanger() fonksiyonunun üzerine int checkDuplicate(char* name); yazabilirsiniz.
Veya direkt checkduplicate fonksiyonunu addpassanger() üzerine taşıyabilirsiniz.
Konu hakkında bilgi için: Message "warning: implicit declaration of function"

İkisini de ayrı ayrı denedim, sorun çözülmedi. Siz denediniz, çözüldü mü acaba?
Denediyseniz kodun son halini paylaşır mısınız?
@Eray T @566156 @Vavien. bi fikriniz var mı?
 
Son düzenleme:

Yeni konular

Geri
Yukarı