User Tools

Site Tools


isc:task32

Task 32

  1. Využíjte šablonu pod textem, doimplementujte dvě funkce: add a div
  2. Funkce add provede sečtení dvou čísel, jako argumenty dostane dvě proměnné typu int a výslednou hodnotu vrací v typu int
  3. Funkce div provede celočíselné dělení dvou čísel, jako argumenty dostane dvě proměnné typu int a výslednou hodnotu vrací v typu int
    • v případě dělení nulou funkce vrátí hodnotu 0 a vypíše chybovou hlášku
  4. Hlavní funkce main postupně načítá výraz od uživatele:
    • jeden symbol ('+' nebo '/') do proměnné operator
    • jednu hodnotu cislo_a
    • jednu hodnotu cislo_b
  5. Když proměnná operator obsahuje znak:
    • '+', zavolej funkci add
    • '/', zavolej funkci div
    • v ostatních situacích (jiné symboly) vypiš chybovou hlášku a ukonči program
  6. Pokud je vše zadané správně, vypiš výsledek operace
  7. (Pokud je něco nedefinované, zvol nejlepší řešení)
task32.c
#include <stdio.h>
 
// function add() here
 
// function div() here
 
int main()
{
	int cislo_a;
	int cislo_b;
	char operator;
	printf("Zadej operator (+ nebo /): ");
	scanf(" %c", &operator);
	printf("Zadej hodnotu a: ");
	scanf("%d", &cislo_a);
	printf("Zadej hodnotu b: ");
	scanf("%d", &cislo_b);
 
	printf("Operator: %c, cislo_a: %d, cislo_b: %d\n", operator, cislo_a, cislo_b);
 
	// some code here
 
	return 0;
}
gcc -std=c99 -g -Wall -Wextra -pedantic task32.c -o task32
./task32

jedno z možných řešení

#include <stdio.h>
 
int add(int a, int b)
{
	int r;
	r = a + b;
	return r;	// or just  return a+b;
}
 
int div(int a, int b)
{
	return a/b;
}
 
int main()
{
	int cislo_a;
	int cislo_b;
	char operator;
	printf("Zadej operator (+ nebo /): ");
	scanf(" %c", &operator);
	printf("Zadej hodnotu a: ");
	scanf("%d", &cislo_a);
	printf("Zadej hodnotu b: ");
	scanf("%d", &cislo_b);
 
	printf("Operator: %c, cislo_a: %d, cislo_b: %d\n", operator, cislo_a, cislo_b);
 
	int result = 0;
	if (c == '+') {
		result = add(a, b);
	}
	else if (c == '/') {
		if (b == 0) {
			printf("Division by 0 is not defined, returning 1\n");
			return 1;
		}
		else // not really needed because of return 1;
		{
			result = div(a, b);
		}
	}
 
	printf("Result = %d\n", result);
	return 0;
}

isc/task32.txt · Last modified: 2024/10/09 17:09 by sakin