#====================================================================# # 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;
}