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

struktura jako parametr funkcji

VPS Starter Arubacloud
0 głosów
284 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 358 wizyt
0 głosów
1 odpowiedź 324 wizyt
0 głosów
1 odpowiedź 409 wizyt

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...