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

Duman0912

Decapat
Katılım
31 Aralık 2022
Mesajlar
936
Çözümler
1
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:
Aldığınız hatayı yazar mısınız?
 
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:
searchPassenger Neden bitmiyor? Parantez koymalısın.
 
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:
Ben koymuşsun dediğim mesaj da if ve searchPassenger'ı karıştırmışım. Bu attığın kod da parantez konulmuş.
 
@Duman0912 ne hatası alıyorsunuz? Üstte yazdım, sanırım gormediniz.
 

İkisini de ayrı ayrı denedim, sorun çözülmedi. Siz denediniz, çözüldü mü acaba?
Denediyseniz kodun son halini paylaşır mısınız?
@300319 @566156 @Vavien. bi fikriniz var mı?
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…