funkcje dodawanie dwóch liczb

0

Witam. Mam problem z programem polecenie:
Napisz program w jednym pliku (o nazwie main.cpp), który odczytuje od użytkownika dwie oddzielne liczby całkowite, dodaje je do siebie, a następnie wyświetla odpowiedź.
Na końcu mój program i nie wiem dlaczego nie działa
Na początku program wzorcowy dlaczego tutaj w funkcji main() funkcja writeAnswer nie ma void a w moim programie bez void wyskakuje błąd

#include <iostream>

int readNumber()
{
    std::cout << "Enter a number to add: ";
    int x{};
    std::cin >> x;
    return x;
}

void writeAnswer(int x)
{
    std::cout << "The answer is " << x << '\n';
}

int main()
{
    int x{ readNumber() };
    int y{ readNumber() };
    writeAnswer(x + y); // using operator+ to pass the sum of x and y to writeAnswer()
    return 0;
}
#include <iostream>
int wczytajnumer()
{
    std::cout << "Podaj liczbe";
    int liczba{};
    std::cin >> liczba;
    return liczba;
}
void wypiszliczbe(int licz)
{
    std::cout << "wynik" << licz;
}
main()
{
    int liczba1{ wczytajnumer() };
    int liczba2{ wczytajnumer() };
    int licz = liczba1 + liczba2;
    wypiszliczbe(int licz);
    std::cout << liczba2;
    std::cout << liczba1;
}

2

Jeden wielki chaos.
Przypadkowe wklejki bez zrozumienia z różnych źródeł
Kopiowane z innego źródła niż poprzednie, bo więcej inicjowania klamerkami niż "równasię", ale istoty nie zmienia.

TWIERDZISZ że przerabiasz jakieś kursy i książki ... wybacz, albo kłamiesz, albo daruj sobie bo zachodzi, jak to sie mówi, "brak predyspozycji" i z tego nic nie będzie

a w moim programie bez void wyskakuje błąd

genialne stwierdzenie, jak na tyle nauki i obecności na forum.

5
  1. Czytaj ostrzeżenia i błędy kompilatora. On Ci wszystko napisał, co trzeba:
usunmnie.cpp:13:1: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type]
   13 | main()
      | ^~~~
usunmnie.cpp: In function ‘int main()’:
usunmnie.cpp:18:18: error: expected primary-expression before ‘int’
   18 |     wypiszliczbe(int licz);
      |                  ^~~
usunmnie.cpp:17:9: warning: unused variable ‘licz’ [-Wunused-variable]
   17 |     int licz = liczba1 + liczba2;
      |  
  1. Funkcja main musi być typu int.
  2. W osiemnastej linijce, wypiszliczbe(int licz);, jest bez sensu — funkcje się wywołuje podając jej argumenty (tutaj: licz), a nie typ i argument. Typ jest już przypisany do argumentu.

Na początku program wzorcowy dlaczego tutaj w funkcji main() funkcja writeAnswer nie ma void a w moim programie bez void wyskakuje błąd

  1. Przeczytaj błąd, to będziesz wiedzieć.
  2. Definicja funkcji wymaga podania typu zwracanego (przed nazwą funkcji) oraz typu argumentów (przed nazwami argumentów). Wykonanie funkcji się odbywa bez tych informacji — są one już kompilatorowi znane. Tak więc masz void writeAnswer(int x) — typ void, nazwa funkcji void writeAnswer(int x), argument typu int, nazwa argumentu x; a potem writeAnswer(x + y) — nazwa funkcji witeAnswer, argument x + y.
0

Chciałam trochę zmodyfikować ten program teraz mam oddzielny plik io.cpp ale mam błąd Value stored to 'liczba' its initialization is never read

#include <iostream>
int wczytajnumer()
{
    std::cout << "Podaj liczbe";
    int liczba{};
    std::cin >> liczba;
    std::cout << liczba;
    return liczba;
}

#include <iostream>
int wczytajnumer();
int main()
{
    int liczba{ wczytajnumer() };
}

2

I to prawda: wczytujesz wartość do int liczba, ale nic dalej w main() z tą wartością nie robisz.

(btw, to nie jest błąd, a najpewniej jedynie ostrzeżenie / informacja)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.