Exercícios

Considere o programa em python que soma 12 (duzia.py) ao valor lido do terminal:
n = int(input("? "))
print(12 + n)  


e o equivalente programa em C (duzia.c)

#include <stdio.h>
int main() {
	int n;
	printf("? ");
	scanf("%d", &n);
	printf("%d\n", 12 + n);
	return 0;
}
  


onde scanf("%d", &n); é a função de leitura de um inteiro decimal (que devolve o número de parâmetros lidos) e printf("%d\n", n); é a função escrita de um inteiro decimal (que devolve o número de carateres impressos no terminal).

Pretende-se converter para C os seguintes exemplos:

  1. Classificador de triângulos: (tri.py)
    a = int(input("? "))
    b = int(input("? "))
    c = int(input("? "))
    if a < 1 or b < 1 or c < 1 :
      print("As dimensões dos lados do triângulo devem ser todas positivas")
    else:
      if a + b <= c or a + c <= b or c + b <= a :
        print("Não é triângulo")
      else:
        if a == b and b == c :
          print("O triângulo é equilátero")
        else:
          if a == b or b == c or c == a :
            print("O triângulo é isósceles")
          else:
            print("O triângulo é escaleno")
      

  2. Divisores de um número: (div.py)
    d = 0
    n = int(input("? "))
    if n > 0 :
      i = 2
      while i <= n // 2 :
        if n % i == 0 :
          print(n, 'é divisível por', i)
          d = d + 1
        i = i + 1
      if d == 0 :
        print(n, 'é primo.')
      

  3. Maior divisor comum: (gcd.py)
    a = int(input("? "))
    b = int(input("? "))
    if a <= 0 or b <= 0 :
      print("Os números devem ser inteiros positivos")
    else:
      m,d,i = a,1,2
      if a > b :
        m = b
      while i <= m :
        if a % i == 0 and b % i == 0 :
          d = i
        i = i + 1
      print(d, "é o maior divisor comum entre", a, "e", b)
      

  4. Somatório de inteiros: (sum.py)
    sum = 0
    a = input("? ")
    while a.lstrip('-').isdigit() :
      sum = sum + int(a)
      a = input("? ")
    print(sum)
      

  5. Impressão de inteiro em base dada: (printn.py)
    def printn(n, b) :
      a = int(n // b)
      if a != 0 :
        printn(a, b)
      print(str(n % b), end="")
    
    n = int(input("? "))
    b = int(input("? "))
    printn(n, b)
    print("")