Programy do małej korekty

0

Witam napisałem dwa program podające cześć całkowita (pierwszy) i różnice z dzielenia (drugi). Niestety zawsze zwraca mi wartość 1 bądź 0. Proszę o odnalezienie błędów. Z góry dzięki.
Pozdrawiam.

1:

 
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;
int mydiv(int m, int n);

int mydiv(int m, int n)
{
	int c = 0;
	while(m>n)
	{
	m-=n;
	c++;	
	}
	return c;
}

int main(int argc, char *argv[])
{
	int x, y;
	float o;
	printf("Wprowadz liczbe ktora chcesz podzielic, i liczbe prze ktora ma byc dzielona:\n");
	scanf("%f%f", &x, &y);
	o = mydiv(x,y);
	printf("Czesc całkowita z dzielenia wynosi: %f\n", o);
	
	
	system("pause");
	return 0;
}

2:

 
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;

int mydiv(int m, int n);

int mydiv(int m, int n)
{
	float r;
	int c = 0;
	while(m>n)
	{
	m-=n;
	c++;	
	}
	r=m/c*n;
	return r;
}

int main(int argc, char *argv[])
{
	int x, y;
	float r;
	printf("Wprowadz liczbe ktora chcesz podzielic, i liczbe prze ktora ma byc dzielona:\n");
	scanf("%f%f", &x, &y);
	r = mydiv(x,y);
	printf("Reszta z dzielenia wynosi: %f\n", r);
	
	
	system("pause");
	return 0;
}

0

Popraw typy zmiennych - o jest typu float, funkcja zwraca int'a, x,y są typu int, a w scanf tratkujesz je jak float.

Dodatkowo w pętli while daj m>=n i będzie działało.

Jeśli nie dasz rady sam - http://wklej.org/id/645350/

0
 #include <stdio.h>
#include <stdlib.h>
int mydiv(int m, int n)
{
    while (m>n)  {m-=n; }   
    return m;   //zwracasz reszte 
}

int cz_calkowita(int m, int n)
{
    int c = 0 ;
    while (m>n)  {m-=n;  c++;}   
    return c;   
}
 
int main(int argc, char *argv[])
{
        int x, y;
        int o;  //int nie float 
        printf("Wprowadz liczbe ktora chcesz podzielic, i liczbe prze ktora ma byc dzielona:\n");
        scanf("%d%d", &x, &y);
        o = mydiv(x,y);
        
        printf("Czesc  reszta z dzielenia wynosi: %d\n", o);    //wczytujesz int czyli %d nie float
        printf("Czesc  calkowita dzielenia wynosi: %d\n", cz_calkowita(x,y));   

        system("pause");
        return 0;
}

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