#include <stdio.h> typedef struct { int a; int b; char c; } tmeustruct; int boba2 (int val) { return 2*val; } int boba(int val) { tmeustruct ms; static int cont = 0; cont++; ms.b = val; ms.c = 2*val/3; ms.a = boba2(cont); return ms.a+ms.b+ms.c; } int main (void) { int i; for (i=0; i<5; i++) printf("%d\n", boba(i)); return 0; }
Atenção: Nesse caso você pode usar a seguinte forma
da instrução idiv
:
idiv reg8/mem8que supõe que o dividendo está em
%ax
e que o divisor
é o operando de 8 bits (na memória ou em um registrador) dado
na instrução, e coloca o resultado nos oito bits de %al
.
int pares (int a[], int n) { if (n == 0) return 0; else return !(a[0]&1) + pares(a+1,n-1); }
int fib (int n) { if (n <= 1) return 1; else return fib(n - 1) + fib(n - 2); }
#include <stdio.h> #include <stdlib.h> #define MAX 30 int crivoprimos (int n) { int primos[MAX]; int qtos, div, cand, e_primo, soma; qtos = 0; soma = 0; for (cand = 2; cand<=n; cand++) { e_primo = 1; for (div=0; div<qtos; div++) { if (cand % primos[div]==0) { e_primo = 0; break; } } if (e_primo) { primos[qtos] = cand; soma += cand; qtos++; } } return soma; } int main (int argc, char* argv[]) { printf("%d\n", crivoprimos(atoi(argv[1]))); return 0; }