#====================================================================# # função f1 # função f2 # função f3 # #===========#========================#===============================# # a | b | c # a | b |*pmin |*pmax # v[0] v[1] v[2] v[3] min max n # #---|---|---#----|-----|------|------#-------------------------------# # 4 | 7 | 5 # 4 | 7 | 5 | ? # 3 7 1 5 3 3 4 # # | | # | | 4 | 7 # 1 7 1 7 # # | | # | | | # # # | | # | | | # # # | | # | | | # # #====================================================================# #========================# # função main() # #========================# # x | y | z | w # #-----|-----|-----|------# # 4 | 7 | 5 | ? # # | | 4 | 7 # # | | | # # | | | # #========================#A saída é como segue:
Funcao f1: x = 4 y = 7 z = 5 f1(4, 7, 5) = 1 Funcao f2: Dentro da funcao f2: maior = 7, menor = 4. x = 4 y = 7 z = 4 w = 7 Funcao f3: a[0] = 3 a[3] = 5 a[0] = 1 a[3] = 7
void leia_vetor(int v[], int n) { int i; for (i=0; i<n; i++) scanf("%d", &v[i]); } void imprima_vetor(int v[], int n) { int i; for (i=n-1; i>=0; i--) printf("%d", v[i]); printf("\n"); }
int some(int s[], int a[], int n_a, int b[], int n_b) { int i, n_max, vai_1=0, t; /* Colocamos zeros no vetor menor para que possamos considerar * os dois numeros como tendo o mesmo numero de digitos */ if (n_a>n_b) { n_max=n_a; for (i=n_b; i<n_a; i++) b[i]=0; } else if (n_b>n_a) { n_max=n_b; for (i=n_a; i<n_b; i++) a[i]=0; } else n_max=n_a; /* Soma dos digitos */ for (i=0; i<n_max; i++) { t=a[i]+b[i]+vai_1; s[i]=t%10; vai_1=t/10; } if (t>0) { s[n_max]=t; n_max++; } return n_max; }
#include <stdio.h> #define NMAX 1000 void leia_vetor(int v[], int n); void imprima_vetor(int v[], int n); int some(int s[], int a[], int n_a, int b[], int n_b); int main() { int a[NMAX], b[NMAX], s[NMAX]; int n_a, n_b, n_s; scanf("%d", &n_a); leia_vetor(a, n_a); scanf("%d", &n_b); leia_vetor(b, n_b); n_s=some(s, a, n_a, b, n_b); imprima_vetor(a, n_a); printf("+\n"); imprima_vetor(b, n_b); printf("=\n"); imprima_vetor(s, n_s); return 0; }
void leia_matriz(int a[][NMAX], int m, int n) { int i, j; for (i=0; i<m; i++) for (j=0; j<n; j++) scanf("%d", &a[i][j]); } void imprima_matriz(int a[][NMAX], int m, int n) { int i, j; for (i=0; i<m; i++) { for (j=0; j<n; j++) printf("%4d", a[i][j]); printf("\n"); } }
void menor_maior(int v[], int comp, int *pmin, int *pmax) { int i; *pmin=*pmax=v[0]; for (i=1; i<comp; i++) { if (v[i]>*pmax) *pmax=v[i]; if (v[i]<*pmin) *pmin=v[i]; } }
int processe_matriz(int a[][NMAX], int m, int n) { int i, peso_max, i_max, l_max, l_min; menor_maior(a[0], n, &l_min, &l_max); peso_max=l_min+l_max; i_max=0; printf("Pesos:\n"); printf("0: %3d %3d peso = %d\n", l_min, l_max, l_min+l_max); for (i=1; i<m; i++) { menor_maior(a[i], n, &l_min, &l_max); printf("%d: %3d %3d peso = %d\n", i, l_min, l_max, l_min+l_max); if (l_min+l_max>peso_max) { peso_max=l_min+l_max; i_max=i; } } printf("Linha de maior peso: %d\n", i_max); printf("Peso maximo: %d\n", peso_max); return i_max; }
#include <stdio.h> #define MMAX 100 #define NMAX 100 void leia_matriz(int a[][NMAX], int m, int n); void imprima_matriz(int a[][NMAX], int m, int n); void menor_maior(int v[], int comp, int *pmin, int *pmax); int processe_matriz(int a[][NMAX], int m, int n); int main() { int m, n, a[MMAX][NMAX], l, j; scanf("%d %d", &m, &n); leia_matriz(a, m, n); printf("Matriz lida:\n"); imprima_matriz(a, m, n); l=processe_matriz(a, m, n); printf("Elementos da linha de peso maximo:\n"); for (j=0; j<n; j++) printf("%d ", a[l][j]); printf("\n"); return 0; }