cedogukan
Yoctopat
- Katılım
- 30 Nisan 2023
- Mesajlar
- 7
Daha fazla
- Cinsiyet
- Erkek
Herkese merhaba. C dilinde yazdığım kod çalışmıyor ve hatamı bulamadım. Harf girip, sayıyı giriyorum fakat ismi girin kısmında isim girince devam etmiyor. Bilginiz olması amacıyla beklenen çıktıyı da ekledim görsellere. Burayı ilk defa kullandığımdan hangisi daha iyi bilemediğimden kodu ss olarakta ekliyorum metin olarakta. Yardımcı olabilirseniz çok sevinirim.
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PARTS 100
#define CRT_SECURE_NO_WARNING
struct part {
int number;
char name[20];
float price;
int quantity;
};
int num_parts = 0;
struct part inventory[MAX_PARTS];
int find_part(int number);
void insert(void);
void search(void);
void update(void);
void print(void);
int compare_parts(const void* p, const void* q);
int main(void)
{
char code;
for ( ;; ) {
printf("Enter operation code: ");
scanf_s(" %c", &code);
while (getchar() != '\n');
switch (code) {
case 'i': insert();
break;
case 's': search();
break;
case 'u': update();
break;
case 'p': print();
break;
case 'q': return 0;
default: printf("Illegal code\n");
}
printf("\n");
}
}
int find_part(int number)
{
int i;
for (i = 0; i < num_parts; i++)
if (inventory.number == number)
return i;
return -1;
}
void insert(void)
{
int part_number;
if (num_parts == MAX_PARTS) {
printf("Database is full; can't add more parts.\n");
return;
}
printf("Enter part number: ");
scanf_s("%d", &part_number);
if (find_part(part_number) >= 0) {
printf("Part already exists.\n");
return;
}
inventory[num_parts].number = part_number;
printf("Enter part name: ");
scanf_s("%s", &inventory[num_parts].name);
printf("Enter price: ");
scanf_s("%f", &inventory[num_parts].price);
printf("Enter quantity on hand: ");
scanf_s("%d", &inventory[num_parts].quantity);
num_parts++;
}
void search(void)
{
int i, number;
printf("Enter part number: ");
scanf_s("%d", &number);
i = find_part(number);
if (i >= 0) {
printf("Part name: %s\n", inventory.name);
printf("Price: %.2f $\n", inventory.price);
printf("Quantity on hand: %d\n", inventory.quantity);
}
else
printf("Part not found.\n");
}
void update(void)
{
int i, number, change;
printf("Enter part number: ");
scanf_s("%d", &number);
i = find_part(number);
if (i >= 0) {
printf("Enter change in quantity on hand: ");
scanf_s("%d", &change);
inventory.quantity += change;
}
else
printf("Part not found.\n");
}
void print(void)
{
int i;
qsort(inventory, num_parts, sizeof(struct part), compare_parts);
printf("Part Number\tPart Name\tPrice\t\tQuantity on Hand\n");
for (i = 0; i < num_parts; i++)
printf("%d\t\t%s%.2f $\t\t%d\n", inventory.number, inventory.name, inventory.price, inventory.quantity);
}
int compare_parts(const void *p, const void *q)
{
const struct part *p1 = p;
const struct part *p2 = q;
}
Dosya Ekleri
Son düzenleme: