Potrzebuje napisac w C algorytm Euklidesa obliczajacy NWD 2 lczb przy użyciu pętli for. Niestety nie umiem jej skonstruować ktoś pomoże?
0
0
Pętli while:
int i = 2;
while (i != 20) {
i=i+2;
}
odpowiada pętla for:
int i;
for (i = 2 ; i != 20; i=i+2) {}
0
# include <stdio.h>
int main ()
{
int a,b;
printf("Podaj dwie liczby calkowite wieksze od 0:\n");
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
if (a<=0 | b<=0){
printf("Podano nieprawidlowe wartosci.");}
else {
printf("NWD(%i,%i)=",a,b);}
while(a!=b){
if (a>b){
a=a-b;}
else {
b=b-a;}}
printf("%i\n",a);
return 0;
}
Tak przepraszam. Jak mozna tutaj zmienić tę pętlę?
0
#include <stdio.h>
int main()
{
int a, b;
printf("Podaj dwie liczby calkowite wieksze od 0:\n");
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
if (a <= 0 | b <= 0) {
printf("Podano nieprawidlowe wartosci.");
}
else {
printf("NWD(%i,%i)=", a, b);
}
for (;a != b;) {
if (a > b) {
a = a - b;
}
else {
b = b - a;
}
}
printf("%i\n", a);
return 0;
}
Wersja poprawiona: https://ideone.com/jt76AH
0
Zrób, zamiast while:
for(;;)
nieskończona petla i na końcu warunek:
if (a == b) break;
i będzie śmigać:)
0
#include <stdio.h>
int main()
{
int a, b;
printf("Podaj dwie liczby calkowite wieksze od 0:\n");
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
if (a <= 0 | b <= 0) {
printf("Podano nieprawidlowe wartosci.");
}
else {
printf("NWD(%i,%i)=", a, b);
}
for (;;) {
if (a > b) {
a = a - b;
}
if (a < b ) {
b = b - a;
}
if (a==b) break;
}
printf("%i\n", a);
return 0;
}
To jest okey?