Pomoc z funkcjami

0

/*
Napisz program, który wczytuje ze standardowego wejscia nieujemna
liczbe całkowita n (n > 2) i wypisuje na standardowym wyjsciu naj-
wieksza liczbe k taka, ze k dzieli n i k < n. Algorytm wyszukiwania
liczby k spełniajacej powyzsze warunki umiesc w oddzielnej funkcji.
*/

#include <stdio.h>
#include <stdlib.h>
int n,k;
int foo(int n);

int main()
{
    printf("Podaj liczbe!\n");
    scanf("%d",&n);
    foo(n);
    return 0;
}
int foo(int n)
{
   for(k=1;k<n;k++)
   {
        if(n%k==0)
        printf("%d\n",k);
    }

}

Zawiesiłem się i nie wiem jak dalej dokończyć. Może ktoś mi coś doradzi??

0

ojoj
Masz wypisać tylko największą, więc najprościej leć od 2 w ten sposób:

inline int DZIELNIK(int liczba)
{
	for(int i=2; i<liczba; i++)
	{
		if(!(liczba%i))
			return liczba/i;
	}
	return 1;
} 

edit:

#include <iostream>
inline int DZIELNIK(int);
int main ()
{
	int x;
	std::cin >> x;
	std::cout << DZIELNIK(x);
}
inline int DZIELNIK(int liczba)
{
        for(int i=2; i<liczba; i++)
        {
                if(!(liczba%i))
                        return liczba/i;
        }
        return 1;
}

edit2:
taka mała wskazówka: nie musisz deklarując funkcję przed mainem pisać całego int funkcja(int zmienna);, wystarczy zadeklarować typ zmiennej, nie trzeba podawać jej nazwy, o tak: int funkcja(int);

0

okej i wielkie dzięki za pomoc. :D

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