• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

struktura jako parametr funkcji

Object Storage Arubacloud
0 głosów
287 wizyt
pytanie zadane 11 stycznia 2021 w C i C++ przez ifuknowme555 Początkujący (410 p.)
#include <stdio.h>
#include <stdlib.h>
int n,i;
struct produkt
{
    char nazwa[80];
    float cena;
    char firma[80];
    float prowizja;
};
struct produkt p2[4];
float p1(struct produkt, int p)
{
    return p2[i].cena*p;
}
void wczytaj(int a)
{
    for (i = 0; i < n; i++)
    {
        printf("podaj nazwe %d produktu:\n", i + 1);
        scanf("%s", &p2[i].nazwa);
        printf("podaj cene %d produktu:\n", i + 1);
        scanf("%f", &p2[i].cena);
        printf("podaj firme %d produktu:\n", i + 1);
        scanf("%s", &p2[i].firma);
        printf("podaj procent %d produktu:\n", i + 1);
        scanf("%s", &p2[i].prowizja);
        printf("================================\n");
    }
}
void odczyt(int n)
{
    for (i = 0; i < n; i++)
    {
        printf("dane %d produktu:\n", i + 1);
        printf("nazwa: %s\n", p2[i].nazwa);
        printf("cena :%.f\n", p2[i].cena);
        printf("firma :%s\n", p2[i].firma);
        printf("prowizja %d produktu:\n",p1(produkt, p2[i].prowizja));
        printf("================================\n");
    }
}

int main()
{
    printf("podaj ile produktow chesz podac: ");
    scanf("%d", &n);
    wczytaj(n);
    odczyt(n);
}

mam zrobić funkcje która otrzymuje w argumencie strukture typu produkt i prowizje w % i wyznacza wartosc prowizji. Przy próbie rozwiazania wyskakuja mi jakies bledy w odczycie

1 odpowiedź

0 głosów
odpowiedź 11 stycznia 2021 przez tmar1212 Bywalec (2,600 p.)
wybrane 12 stycznia 2021 przez ifuknowme555
 
Najlepsza
struct product

to nazwa typu, więc niech definicja funkcji wygląda:

float p1(struct product <nazwa parametru>, int p)

tak samo w linijce 39, Muissz wywołać funkcję z jakimś istniejącym obiektem typu struct product właśnie.

komentarz 11 stycznia 2021 przez ifuknowme555 Początkujący (410 p.)
struct produkt
{
    char nazwa[80];
    float cena;
    char firma[80];
    float prowizja;
};
struct produkt p2[4];
float p1(struct produkt<produkt>, int p)
{
    return p2[i].cena*p;
}
.
.
.
.

.
.
printf("prowizja %d produktu:\n",p1(struct produkt<produkt>,p2[i].prowizja));

tak to nie działa

 

komentarz 11 stycznia 2021 przez tmar1212 Bywalec (2,600 p.)

Pewnie, że nie działa, jeśli ktos CI podaje coś w takich nawiasach, (<>) to ma tam być jakaś nazwa parametru; przykład:

struct Foo {
  int num;
};
 
int fun(struct Foo param) {
  return param.num + 41;
}
int main()
{
  struct Foo foo;
  foo.num = 1;
  printf("%d\n", fun(foo));  // -> 42
}

 

komentarz 11 stycznia 2021 przez ifuknowme555 Początkujący (410 p.)

to co w tym kodzie jest w kocnu nie tak bo ujuz nie rozumiem

#include <stdio.h>
#include <stdlib.h>
int n,i;
struct produkt
{
    char nazwa[80];
    float cena;
    char firma[80];
    float prowizja;
};
struct produkt p2[4];
float p1(struct produkt, int p)
{
    return p2[i].cena*p;
}
void wczytaj(int a)
{
    for (i = 0; i < n; i++)
    {
        printf("podaj nazwe %d produktu:\n", i + 1);
        scanf("%s", &p2[i].nazwa);
        printf("podaj cene %d produktu:\n", i + 1);
        scanf("%f", &p2[i].cena);
        printf("podaj firme %d produktu:\n", i + 1);
        scanf("%s", &p2[i].firma);
        printf("podaj procent %d produktu:\n", i + 1);
        scanf("%f", &p2[i].prowizja);
        printf("================================\n");
    }
}
void odczyt(int n)
{
    for (i = 0; i < n; i++)
    {
        printf("dane %d produktu:\n", i + 1);
        printf("nazwa: %s\n", p2[i].nazwa);
        printf("cena :%.f\n", p2[i].cena);
        printf("firma :%s\n", p2[i].firma);
        printf("prowizja produktu: %f\n", p1(produkt, p2[i].prowizja));
        printf("================================\n");
    }
}

int main()
{
    printf("podaj ile produktow chesz podac: ");
    scanf("%d", &n);
    wczytaj(n);
    odczyt(n);
}

to jest tresc

komentarz 11 stycznia 2021 przez tmar1212 Bywalec (2,600 p.)
float p(struct produkt param, int p) {
  return param.cena * p;
}

I dopiero tę funkcję Użyj do obliczania i przypisywania prowizji poszczególnym produktom w ich tablicy.

Podobne pytania

0 głosów
2 odpowiedzi 374 wizyt
0 głosów
1 odpowiedź 335 wizyt
0 głosów
1 odpowiedź 410 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...