[C] Zmiana pętli for na do while

olav1337
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 3 gru 2016, o 19:16
Płeć: Mężczyzna
Lokalizacja: Polska

[C] Zmiana pętli for na do while

Post autor: olav1337 »

Jak w temacie chcę zamienić pętle for na do while w kodzie poniżej również chciałbym pozbyć się break'a. Czy ktoś jest w stanie pomóc?

Kod: Zaznacz cały

#include <stdio.h>

int even(int n) {
  int sum = 0;
  while (n > 0) {
    int cyfra = n % 10;
    sum += cyfra;
    n /= 10;
  }
  return sum % 2 == 0;
}

int main() {
  int i, n, k;
  printf("Program zlicza wszystkie wczytane z klawiatury liczby ktorych suma cyfr jest parzysta\n\n");
  printf("Prosze o podanie liczby 'n', po wpisanu 'n' liczb program sie zakonczy: ");
  scanf("%d",&n);
  printf("Prosze o podanie liczby 'k' po wczytaniu tej liczby program sie zakonczy: ");
  scanf("%d",&k);
  printf("\n\n\n\n");
  int suma = 0;
  printf("Prosze o podanie liczb:\n");
  for (i = 0; i < n; i++) {
    int m;
    scanf("%d", &m);
    if (m == k) break;
    if ((m >= 10 && m <= 999) && even(m)) {
      suma++;
    }
  }
  printf("\nsuma = %d\n", suma);
  return 0;
}
-- 17 gru 2016, o 17:59 --

Czy to jest zrobione dobrze?

Kod: Zaznacz cały

#include <stdio.h>

int even(int n) {
  int sum = 0;
  while (n > 0) {
    int cyfra = n % 10;
    sum += cyfra;
    n /= 10;
  }
  return sum % 2 == 0;
}

int main() {
  int i, n, k, m;
  printf("Program zlicza wszystkie wczytane z klawiatury liczby ktorych suma cyfr jest parzysta\n\n");
  printf("Prosze o podanie liczby 'n', po wpisanu 'n' liczb program sie zakonczy: ");
  scanf("%d",&n);
  printf("Prosze o podanie liczby 'k' po wczytaniu tej liczby program sie zakonczy: ");
  scanf("%d",&k);
  printf("\n\n\n\n");
  int suma = 0;
  printf("Prosze o podanie liczb:\n");
  do{
    scanf("%d", &m);
    i=i+1;
    if ((m >= 10 && m <= 999) && even(m)) {
      suma++;
    }
  }while(m!=k && i!=n);
  printf("\nsuma = %d\n", suma);
  return 0;
}
ODPOWIEDZ