User Tools

Site Tools


dydaktyka:cprog:2015:conditionals-solutions

This is an old revision of the document!


Pętla "for", instrukcje warunkowe, operatory relacyjne i logiczne - rozwiązania i odpowiedzi

Zadanie 1

Uwagi:

  • W języku C operator ^ oznacza nie tyle potęgowanie, co operację XOR na bitach operandów :-)
    Czyli nie piszemy delta = b ^ 2 + 4 * a * c, tylko delta = b * b + 4 * a * c
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    double a, b, c;
    double delta;
 
    printf("Podaj wspolczynniki a, b i c: ");
    scanf("%lf %lf %lf", &a, &b, &c);
 
    delta = b * b - 4 * a * c;
 
    printf("delta = %.4f : ", delta);
 
    if (delta < 0) {
        printf("brak pierwiastkow");
    } else if (delta == 0) {
        printf("jeden pierwiastek");
    } else {
        printf("dwa pierwiastki");
    }
 
    printf("\n");
 
    return 0;
}

Zadanie 2

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n;
 
    printf("Podaj liczbe calkowita: ");
    scanf("%d", &n);
 
    if (n % 2 == 0) {
        printf("Liczba %d jest parzysta.\n", n);
    } else {
        // reszta z dzielenia wynosi 1
        printf("Liczba %d jest nieparzysta.\n", n);
    }
 
    return 0;
}

Zadanie 3

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int n;
    int i;
 
    printf("Podaj liczbe calkowita: ");
    scanf("%d", &n);
 
    for (i = 2; (i < n) && (n % i != 0); i = i + 1)
        ;
 
    if (i == n) {
        // Cala petla zostala wykonana, wiec liczba N nie byla podzielna
        // przez zadna z liczb 2, 3, ..., N-1.
        printf("Liczba %d jest pierwsza.\n", n);
    } else {
        printf("Liczba %d NIE jest pierwsza.\n", n);
    }
 
    return 0;
}
dydaktyka/cprog/2015/conditionals-solutions.1446147531.txt.gz · Last modified: 2020/03/25 11:46 (external edit)