Kod: Zaznacz cały
#include <stdio.h>
void funZL(float *, int);
void funGR(float *, int);
int main(void)
{
float x;
printf("Wprowadz liczbe: ");
scanf("%f", &x);
// tu nalezy sprawdzic, czy podana liczba jest prawidlowa
printf("%.2fzl = ", x);
funZL(&x, 200);
funZL(&x, 100);
funZL(&x, 50);
funZL(&x, 20);
funZL(&x, 10);
funZL(&x, 5);
funZL(&x, 2);
funZL(&x, 1);
x *= 100;
funGR(&x, 50);
funGR(&x, 20);
funGR(&x, 10);
funGR(&x, 5);
funGR(&x, 2);
funGR(&x, 1);
return 0;
}
void funZL(float *x, int num)
{
int mod;
mod = (int)*x / num;
if(mod)
printf("%dx%dzl + ", mod, num);
*x -= mod * num;
}
void funGR(float *x, int num)
{
int mod;
mod = (int)(*x) / num;
if(mod)
printf("%dx%dgr + ", mod, num);
*x -= mod * num;
}
Wersja dużo brzydsza, ale i dużo prostsza
Kod: Zaznacz cały
#include <stdio.h>
int main(void)
{
float x;
int mod;
printf("Wprowadz liczbe: ");
scanf("%f", &x);
// tu nalezy sprawdzic, czy podana liczba jest prawidlowa
printf("%.2fzl = ", x);
mod = (int)x / 200;
if(mod)
printf("%dx%dzl + ", mod, 200);
x -= mod * 200;
mod = (int)x / 100;
if(mod)
printf("%dx%dzl + ", mod, 100);
x -= mod * 100;
mod = (int)x / 50;
if(mod)
printf("%dx%dzl + ", mod, 50);
x -= mod * 50;
mod = (int)x / 20;
if(mod)
printf("%dx%dzl + ", mod, 20);
x -= mod * 20;
mod = (int)x / 10;
if(mod)
printf("%dx%dzl + ", mod, 10);
x -= mod * 10;
mod = (int)x / 5;
if(mod)
printf("%dx%dzl + ", mod, 5);
x -= mod * 5;
mod = (int)x / 2;
if(mod)
printf("%dx%dzl + ", mod, 2);
x -= mod * 2;
mod = (int)x / 1;
if(mod)
printf("%dx%dzl + ", mod, 1);
x -= mod * 1;
x *= 100;
mod = (int)x / 50;
if(mod)
printf("%dx%dgr + ", mod, 50);
x -= mod * 50;
mod = (int)x / 20;
if(mod)
printf("%dx%dgr + ", mod, 20);
x -= mod * 20;
mod = (int)x / 10;
if(mod)
printf("%dx%dgr + ", mod, 10);
x -= mod * 10;
mod = (int)x / 5;
if(mod)
printf("%dx%dgr + ", mod, 5);
x -= mod * 5;
mod = (int)x / 2;
if(mod)
printf("%dx%dgr + ", mod, 2);
x -= mod * 2;
mod = (int)x / 1;
if(mod)
printf("%dx%dgr + ", mod, 1);
x -= mod * 1;
return 0;
}
Wersja trudniejsza, ale najlepsza
Kod: Zaznacz cały
#include <stdio.h>
void funZL(float *, int);
void funGR(float *, int);
int main(void)
{
unsigned int tab_ZL[]={200,100,50,20,10,5,2,1};
unsigned int tab_GR[]={50,20,10,5,2,1};
float x;
printf("Wprowadz liczbe: ");
scanf("%f", &x);
printf("%.2fzl = ", x);
for(size_t i = 0; i < 8; ++i)
funZL(&x, tab_ZL[i]);
x *= 100;
for(size_t i = 0; i < 6; ++i)
funGR(&x, tab_GR[i]);
return 0;
}
void funZL(float *x, int num)
{
int mod;
mod = (int)*x / num;
if(mod)
printf("%dx%dzl + ", mod, num);
*x -= mod * num;
}
void funGR(float *x, int num)
{
int mod;
mod = (int)(*x) / num;
if(mod)
printf("%dx%dgr + ", mod, num);
*x -= mod * num;
}
hana197 pisze:
Skorzystałam z funkcji if...else
if...else
to nie jest funkcja
Kod: Zaznacz cały
#include <stdio.h>
int main(void)
{
unsigned int liczba;
unsigned int liczba_cyfr;
printf("Podaj liczbe: ");
scanf("%u", &liczba);
switch(liczba)
{
case 1:
printf("%d zloty", liczba);
break;
case 2:
printf("%d zlote", liczba);
break;
case 3:
printf("%d zlote", liczba);
break;
case 4:
printf("%d zlote", liczba);
break;
default:
printf("%d zlotych", liczba);
break;
}
return 0;
}