podzielność przez 7 i 11 i suma, problem ze zwrotem wyniku

0
#include<stdio.h>
#include<math.h>

#include<conio.h>



int funkcja (int k, int b);
/**************************/

int funkcja(int k , int b)
{
int suma;

for(int i=b;  i<k;i++)
 {
    if(i % 7==0 && i % 11 == 0)
    {
       suma = 0+i; 
    }
  }
  return suma;
  
  
}


using namespace std;

int main(void)
{
  int wynik;
  int k;
  int b;
 cout<<"koniec :";
 cin >> k;
 cout <<"Poczatek :";
 cin >> b;
 funkcja(k,b);
 wynik = funkcja;
 printf("Suma jest rowna : %d" , wynik);
 getch();
 return 0;
 
 }

Mogłby ktoś rzucić okiem bo wyskakuje mi bład Error E2034 D:\Relo2\temp\Project1.cpp 40: Cannot convert 'int (*)(int,int)' to 'int' in function main()

0
 funkcja(k,b);
 wynik = funkcja;

Co to ma wg Ciebie robić?

0

Nooo....chyba wywołanie funkcji, i przypisanie wartosci ktora funkcja zwraca do zmiennej zadeklarowanej w funkcji main(). Nie znam się na c++, a próbuje opanowac jakies podstawy

0

Tak się korzysta z funkcji:

wynik = funkcja(k,b);
0

Tak to jest wywołanie funkcji, a przynajmniej to:

funkcja(k,b);

Kod:

wynik = funkcja;

Jest przypisaniem funkcji do zmiennej. Funkcji a nie jej wartości. Tu zapisujemy jak w matematyce czyli:

wynik = funkcja(k,b);

Skąd w ogóle pomysł, że to tak działa?

0

super, dzięki za pomoc, w koncu jestem bardzo bardzo poczatkujacy. Dzieki serdeczne

0

przede wszystkim w żadnej z tych bibliotek nie ma przestrzeni nazw std dlatego program nie powinien się nawet skompilować.
Zamiast <stdio.h> wpisz <iostream>
I tak już dla twojej wygody i tych co czytają kod nawiasuj warunki

if(((i % 7) == 0) && ((i % 11) == 0))
0
suma = 0+i;   

co to ma robić?

 suma=i;

(przypisanie i do zmiennej suma) albo suma+=i;

 (dodanie i do sumy)

1 użytkowników online, w tym zalogowanych: 0, gości: 1