Você está na página 1de 56

GABARITO

ESTUDO DIRIGIDO DE LINGUAGEM C


14 e 15 EDIO - CD. 8879
AUTOR: JOS AUGUSTO N. G. MANZANO

Prezado(a) Educador(a)

O material apresentado contm as respostas dos exerccios de fixao do livro


Estudo Dirigido de Linguagem C.
As respostas so fornecidas genericamente no sentido de atender a soluo de
certo problema do ponto de vista algortmico, servindo como ponto de auxlio ao
seu trabalho. So respostas indicadas sem a pretenso de serem as nicas ou
as melhores, sendo apenas algumas possveis.
Sugere-se a leitura dos livros Estudo Dirigido de Algoritmos e Algoritmos: Lgica
para o Desenvolvimento de Programao de Computadores, que abordam
alguns pontos adicionais importantes.
O conjunto de exerccios apresentado em mdia suficiente para a fixao dos
detalhes de uso da linguagem de programao de computadores na mente do
educando.
Espero, com isso, facilitar ao colega ministrar a base de conhecimentos sobre a
programao de computadores.

Atenciosamente,
Jos Augusto N. G. Manzano

Captulo 3
Exerccio A
/* CAP03EX_A - Capitulo 3 - Exercicio A */
#include <stdio.h>
int main(void)
{
int A, B, C, D;
int S1, S2, S3, S4, S5, S6;
int M1, M2, M3, M4, M5, M6;
printf("Informe
printf("Informe
printf("Informe
printf("Informe
S1
S2
S3
S4
S5
S6

=
=
=
=
=
=

A
A
A
B
B
C

+
+
+
+
+
+

B;
C;
D;
C;
D;
D;

M1
M2
M3
M4
M5
M6

=
=
=
=
=
=

A
A
A
B
B
C

*
*
*
*
*
*

B;
C;
D;
C;
D;
D;

um
um
um
um

valor
valor
valor
valor

para
para
para
para

printf("\n");
printf("\nA +
printf("\nA +
printf("\nA +
printf("\nB +
printf("\nB +
printf("\nC +

B
C
D
C
D
D

=
=
=
=
=
=

%d",
%d",
%d",
%d",
%d",
%d",

S1);
S2);
S3);
S4);
S5);
S6);

printf("\n");
printf("\nA *
printf("\nA *
printf("\nA *
printf("\nB *
printf("\nB *
printf("\nC *

B
C
D
C
D
D

=
=
=
=
=
=

%d",
%d",
%d",
%d",
%d",
%d",

M1);
M2);
M3);
M4);
M5);
M6);

a
a
a
a

variavel
variavel
variavel
variavel

return 0;
}

Estudo Dirigido de Linguagem C

A:
B:
C:
D:

");
");
");
");

scanf("%d",
scanf("%d",
scanf("%d",
scanf("%d",

&A);
&B);
&C);
&D);

Exerccio B
/* CAP03EX_B - Capitulo 3 - Exercicio B */
#include <stdio.h>
int main(void)
{
float TEMPO, VELOCIDADE, DISTANCIA, LITROS_USADOS;
printf("Informe o tempo gasto na viagem ..........: ");
scanf("%f", &TEMPO);
printf("Informe a velocidade media do percurso ...: ");
scanf("%f", &VELOCIDADE);
DISTANCIA = TEMPO * VELOCIDADE;
LITROS_USADOS = DISTANCIA / 12;
printf("\n");
printf("\nTempo de viagem ....:
printf("\nVelocidade media ...:
printf("\nDistancia ..........:
printf("\nLitros usados ......:

%10.2f",
%10.2f",
%10.2f",
%10.2f",

TEMPO);
VELOCIDADE);
DISTANCIA);
LITROS_USADOS);

return 0;
}

Exerccio C
/* CAP03EX_C - Capitulo 3 - Exercicio C */
#include <stdio.h>
int main(void)
{
float C, F;
printf("Informe a temperatura em graus Celcius ..: ");
scanf("%f", &C);
F = (9 * C + 160) / 5;
printf("\n");
printf("\nTemperatura em graus Fahrenheit .........: %10.2f", F);
return 0;
}

Exerccio D
/* CAP03EX_D - Capitulo 3 - Exercicio D */
#include <stdio.h>
int main(void)
{
float F, C;
printf("Informe a temperatura em graus Fahrenheit ..: "); scanf("%f", &F);
C = ((F - 32) * 5) / 9;
printf("\n");
printf("\nTemperatura em graus Celcius ...............: %10.2f", C);
return 0;
}

Exerccio E
/* CAP03EX_E - Capitulo 3 - Exercicio E */
#include <stdio.h>
int main(void)
{
float R, A, V;
printf("Informe o valor do raio ....: "); scanf("%f", &R);
printf("Informe o valor do altura ..: "); scanf("%f", &A);
V = 3.14159 * R * R * A;
printf("\n");
printf("\nVolume .....................: %10.2f", V);
return 0;
}

Exerccio F
/* CAP03EX_F - Capitulo 3 - Exercicio F */
#include <stdio.h>
int main(void)
{
int A, B, X;

Estudo Dirigido de Linguagem C

printf("Informe o valor da variavel A: "); scanf("%d", &A);


printf("Informe o valor da variavel B: "); scanf("%d", &B);
X = A;
A = B;
B = X;
printf("\n");
printf("\nAgora a variavel A esta com o valor %d", A);
printf("\nAgora a variavel B esta com o valor %d", B);
return 0;
}

Captulo 4
Exerccio A
/* CAP04EX_A - Capitulo 4 - Exercicio A */
#include <stdio.h>
int main(void)
{
int A, B, C, X;
printf("Informe o valor da variavel A: "); scanf("%d", &A);
printf("Informe o valor da variavel B: "); scanf("%d", &B);
printf("Informe o valor da variavel C: "); scanf("%d", &C);
if (A
X =
A =
B =
}

> B) {
A;
B;
X;

if (A
X =
A =
C =
}

> C) {
A;
C;
X;

if (B
X =
B =
C =
}

> C) {
B;
C;
X;

printf("\n");
printf("\nAgora a variavel A esta com o valor %d", A);
printf("\nAgora a variavel B esta com o valor %d", B);
printf("\nAgora a variavel B esta com o valor %d", C);
return 0;
}

Exerccio B
/* CAP04EX_B - Capitulo 4 - Exercicio B */
#include <stdio.h>
#include <math.h>
int main(void)
{
float A, B, C, DELTA, X, X1, X2;
printf("Informe o valor da variavel A: "); scanf("%f", &A);
printf("Informe o valor da variavel B: "); scanf("%f", &B);
printf("Informe o valor da variavel C: "); scanf("%f", &C);
if (A != 0 && B != 0 && C != 0) {
DELTA = pow(B, 2) - 4 * A * C;
if (DELTA == 0) {
X = -B / (2 * A);
printf("\nX = %10.2f", X);
}
else
if (DELTA > 0) {
X1 = (-B + sqrt(DELTA)) / (2 * A);
X2 = (-B - sqrt(DELTA)) / (2 * A);
printf("\nX1 = %10.2f", X1);
printf("\nX2 = %10.2f", X2);
}
else
printf("\nNao existem raizes reais"); }
else
printf("\nNao e uma equacao completa de segundo grau");
return 0;
}

Exerccio C
/* CAP04EX_C - Capitulo 4 - Exercicio C */
#include <stdio.h>
#include <math.h>
int main(void)
{
float N1, N2, N3, N4, MD;
printf("Informe
printf("Informe
printf("Informe
printf("Informe

A
A
A
A

Nota
Nota
Nota
Nota

1:
2:
3:
4:

");
");
");
");

scanf("%f",
scanf("%f",
scanf("%f",
scanf("%f",

MD = (N1 + N2 + N3 + N4) / 4;

Estudo Dirigido de Linguagem C

&N1);
&N2);
&N3);
&N4);

if (MD >= 5)
printf("\nAprovado com media %10.2f", MD);
else
printf("\nReprovado com media %10.2f", MD);
return 0;
}

Exerccio D
/* CAP04EX_D - Capitulo 4 - Exercicio D */
#include <stdio.h>
#include <math.h>
int main(void)
{
float N1, N2, N3, N4, MD1, EX, MD2;
printf("Informe
printf("Informe
printf("Informe
printf("Informe

a
a
a
a

Nota
Nota
Nota
Nota

1
2
3
4

..:
..:
..:
..:

");
");
");
");

scanf("%f",
scanf("%f",
scanf("%f",
scanf("%f",

&N1);
&N2);
&N3);
&N4);

MD1 = (N1 + N2 + N3 + N4) / 4;


if (MD1 >= 7)
printf("\nAprovado com media %10.2f", MD1);
else {
printf("Informe o Exame ...: "); scanf("%f", &EX);
MD2 = (MD1 + EX) / 2;
if (MD2 >= 5)
printf("\nAprovado em exame com media %10.2f", MD2);
else
printf("\nReprovado com media %10.2f", MD2);
}
return 0;
}

Exerccio E
/* CAP04EX_E - Capitulo 4 - Exercicio E */
#include <stdio.h>
#include <math.h>
int main(void)
{
int A, B, DIF;
printf("Informe um valor para a variavel A: "); scanf("%d", &A);

printf("Informe um valor para a variavel B: "); scanf("%d", &B);


if (A > B)
DIF = A - B;
else
DIF = B - A;
printf("\nA difrenca dos valores equivale a %d", DIF);
return 0;
}

Captulo 5
Exerccio A - do...while
/* CAP05EX_A_DWH - Capitulo 5 - Exercicio A com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
I = 0;
do
{
R = I % 2; // ha casos em que podera usar a expressao R = I - 2 * (I / 2);
if (R != 0)
printf("%d\n", I);
I++;
}
while (I <= 20);
return 0;
}

Exerccio A - for()
/* CAP05EX_A_FOR - Capitulo 5 - Exercicio A com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
for (I = 0; I <= 20; I++)
{

Estudo Dirigido de Linguagem C

R = I % 2; // ha casos em que podera usar a expressao R = I - 2 * (I / 2);


if (R != 0)
printf("%d\n", I);
}
return 0;
}

Exerccio A - while
/* CAP05EX_A_WHI - Capitulo 5 - Exercicio A com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
I = 0;
while (I <= 20)
{
R = I % 2; // ha casos em que podera usar a expressao R = I - 2 * (I / 2);
if (R != 0)
printf("%d\n", I);
I++;
}
return 0;
}

Exerccio B - do...while
/* CAP05EX_B_DWH - Capitulo 5 - Exercicio B com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int S, I;
S = 0;
I = 1;
do
{
S += I;
I++;
}
while (I <= 100);
printf("%d\n", S);
return 0;
}

Exerccio B - for()
/* CAP05EX_B_FOR - Capitulo 5 - Exercicio B com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int S, I;
S = 0;
for (I = 1; I <= 100; I++)
S += I;
printf("%d\n", S);
return 0;
}

Exerccio B - while
/* CAP05EX_B_WHI - Capitulo 5 - Exercicio B com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int S, I;
S = 0;
I = 1;
while (I <= 100)
{
S += I;
I++;
}
printf("%d\n", S);
return 0;
}

Exerccio C - do...while
/* CAP05EX_C_DWH - Capitulo 5 - Exercicio C com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, I, R;

10

Estudo Dirigido de Linguagem C

printf("Tabuada de qual numero? "); scanf("%d", &N);


I = 1;
do
{
R = N * I;
printf("%2d X %2d = %3d\n", N, I, R);
I++;
}
while (I <= 10);
return 0;
}

Exerccio C - for()
/* CAP05EX_C_FOR - Capitulo 5 - Exercicio C com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, I, R;
printf("Tabuada de qual numero? "); scanf("%d", &N);
for (I = 1; I <= 10; I++)
{
R = N * I;
printf("%2d X %2d = %3d\n", N, I, R);
}
return 0;
}

Exerccio D - do...while
/* CAP05EX_D_DWH - Capitulo 5 - Exercicio D com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
I = 1;
do
{

11

R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4);


if (R == 0)
printf("%d\n", I);
I++;
}
while (I < 200);
return 0;
}

Exerccio D - for()
/* CAP05EX_D_FOR - Capitulo 5 - Exercicio D com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
for (I = 1; I < 200; I++)
{
R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4);
if (R == 0)
printf("%d\n", I);
}
return 0;
}

Exerccio D - while
/* CAP05EX_D_WHI - Capitulo 5 - Exercicio D com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
I = 1;
while (I < 200)
{
R = I % 4; // ha casos em que podera usar a expressao R = I - 4 * (I / 4);
if (R == 0)
printf("%d\n", I);
I++;
}
return 0;
}

12

Estudo Dirigido de Linguagem C

Exerccio E - do...while
/* CAP05EX_E_DWH - Capitulo 5 - Exercicio E com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
I = 15;
do
{
R = I * I;
printf("%d\n", R);
I++;
}
while (I <= 180);
return 0;
}

Exerccio E - for()
/* CAP05EX_E_FOR - Capitulo 5 - Exercicio E com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;
for (I = 15; I <= 180; I++)
{
R = I * I;
printf("%d\n", R);
}
return 0;
}

Exerccio E - while
/* CAP05EX_E_WHI - Capitulo 5 - Exercicio E com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, R;

13

I = 15;
while (I <= 180)
{
R = I * I;
printf("%d\n", R);
I++;
}
return 0;
}

Exerccio F - do...while
/* CAP05EX_F_DWH - Capitulo 5 - Exercicio F com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, P;
P = 1;
I = 0;
do
{
printf("%5d\n", P);
P *= 3;
I++;
}
while (I <= 9);
return 0;
}

Exerccio F - for()
/* CAP05EX_F_FOR - Capitulo 5 - Exercicio F com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, P;
P = 1;
for (I = 0; I <= 9; I++)
{
printf("%5d\n", P);
P *= 3;
}
return 0;
}

14

Estudo Dirigido de Linguagem C

Exerccio F - while
/* CAP05EX_F_WHI - Capitulo 5 - Exercicio F com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int I, P;
P = 1;
I = 0;
while (I <= 9)
{
printf("%5d\n", P);
P *= 3;
I++;
}
return 0;
}

Exerccio G - do...while
/* CAP05EX_G_DWH - Capitulo 5 - Exercicio G com do...while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, I, ATUAL, ANTERIOR, PROXIMO;
printf("Qual termo Fibonacci: "); scanf("%d", &N);
ANTERIOR = 0;
ATUAL = 1;
I = 1;
do
{
PROXIMO = ATUAL + ANTERIOR;
ANTERIOR = ATUAL;
ATUAL = PROXIMO;
I++;
}
while (I <= N);
printf("Resultado = %d", ANTERIOR);
return 0;
}

15

Exerccio G - for()
/* CAP05EX_G_FOR - Capitulo 5 - Exercicio G com for */
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, I, ATUAL, ANTERIOR, PROXIMO;
printf("Qual termo Fibonacci: "); scanf("%d", &N);
ANTERIOR = 0;
ATUAL = 1;
for (I = 1; I <= N; I++)
{
PROXIMO = ATUAL + ANTERIOR;
ANTERIOR = ATUAL;
ATUAL = PROXIMO;
}
printf("Resultado = %d", ANTERIOR);
return 0;
}

Exerccio G - while
/* CAP05EX_G_WHI - Capitulo 5 - Exercicio G com while */
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, I, ATUAL, ANTERIOR, PROXIMO;
printf("Qual termo Fibonacci: "); scanf("%d", &N);
ANTERIOR = 0;
ATUAL = 1;
I = 1;
while (I <= N)
{
PROXIMO = ATUAL + ANTERIOR;
ANTERIOR = ATUAL;
ATUAL = PROXIMO;
I++;
}
printf("Resultado = %d", ANTERIOR);
return 0;
}

16

Estudo Dirigido de Linguagem C

Captulo 6
Exerccio 1A
/* CAP06EX1_A - Capitulo 6 - Exercicio 1A */
#include <stdio.h>
int main(void)
{
int A[10], I;
/* Entrada de dados */
for (I = 0; I <= 9; I ++)
{
printf("Informe um valor para o elemento nr. %2d: ", I + 1);
scanf("%d", &A[I]);
}
/* Saida de dados */
for (I = 0; I <= 9; I ++)
printf("\nA[%2d] = %2d", I + 1, A[I]);
return 0;
}

Exerccio 1B
/* CAP06EX1_B - Capitulo 6 - Exercicio 1B */
#include <stdio.h>
int main(void)
{
int A[8], B[8], I;
/* Entrada de dados */
for (I = 0; I <= 7; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Processamento */
for (I = 0; I <= 7; I ++)
B[I] = A[I] * 3;
/* Saida de dados */
for (I = 0; I <= 7; I ++)
printf("\nB[%2d] = %2d", I + 1, B[I]);
return 0;
}

17

Exerccio 1C
/* CAP06EX1_C - Capitulo 6 - Exercicio 1C */
#include <stdio.h>
int main(void)
{
int A[15], B[15], I, J;
/* Entrada de dados */
for (I = 0; I <= 14; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Processamento */
for (I = 0; I <= 14; I ++)
{
B[I] = 1;
for (J = 1; J <= A[I]; J++)
B[I] *= J;
}
/* Saida de dados */
for (I = 0; I <= 14; I ++)
printf("\nB[%2d] = %2d", I + 1, B[I]);
return 0;
}

Exerccio 1D
/* CAP06EX1_D - Capitulo 6 - Exercicio 1D */
#include <stdio.h>
int main(void)
{
int A[20], B[20], C[20], I;
/* Entrada de dados - Matriz A */
for (I = 0; I <= 19; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Entrada de dados - Matriz B */
for (I = 0; I <= 19; I ++)
{
printf("Informe um valor para o elemento nr. B[%2d]: ", I + 1);
scanf("%d", &B[I]);
}
/* Processamento */
for (I = 0; I <= 19; I ++)

18

Estudo Dirigido de Linguagem C

C[I] = A[I] - B[I];


/* Saida de dados */
for (I = 0; I <= 19; I ++)
printf("\nC[%2d] = %2d", I + 1, C[I]);
return 0;
}

Exerccio 1E
/* CAP06EX1_E - Capitulo 6 - Exercicio 1E */
#include <stdio.h>
int main(void)
{
int A[10], B[10], C[20], I;
/* Entrada de dados - Matriz A */
for (I = 0; I <= 9; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Entrada de dados - Matriz B */
for (I = 0; I <= 9; I ++)
{
printf("Informe um valor para o elemento nr. B[%2d]: ", I + 1);
scanf("%d", &B[I]);
}
/* Processamento */
for (I = 0; I <= 19; I ++)
if (I <= 9)
C[I] = A[I];
else
C[I] = B[I - 10];
/* Saida de dados */
for (I = 0; I <= 19; I ++)
printf("\nC[%2d] = %2d", I + 1, C[I]);
return 0;
}

Exerccio 1F
/* CAP06EX1_F - Capitulo 6 - Exercicio 1F */
#include <stdio.h>
int main(void)
{
int A[5], B[10], C[15], I;

19

/* Entrada de dados - Matriz A */


for (I = 0; I <= 4; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Entrada de dados - Matriz B */
for (I = 0; I <= 9; I ++)
{
printf("Informe um valor para o elemento nr. B[%2d]: ", I + 1);
scanf("%d", &B[I]);
}
/* Processamento */
for (I = 0; I <= 14; I ++)
if (I <= 4)
C[I] = A[I];
else
C[I] = B[I - 5];
/* Saida de dados */
for (I = 0; I <= 14; I ++)
printf("\nC[%2d] = %2d", I + 1, C[I]);
return 0;
}

Exerccio 1G
/* CAP06EX1_G - Capitulo 6 - Exercicio 1G */
#include <stdio.h>
int main(void)
{
int A[15], B[15], I;
/* Entrada de dados */
for (I = 0; I <= 14; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Processamento */
for (I = 0; I <= 14; I ++)
B[I] = A[I] * A[I];
/* Saida de dados */
for (I = 0; I <= 14; I ++)
printf("\nA[%2d] = %2d | B[%2d] = %2d", I + 1, A[I], I + 1, B[I]);
return 0;
}

20

Estudo Dirigido de Linguagem C

Exerccio 1H
/* CAP06EX1_H - Capitulo 6 - Exercicio 1H */
#include <stdio.h>
int main(void)
{
int A[20], B[20], I;
/* Entrada de dados */
for (I = 0; I <= 19; I ++)
{
printf("Informe um valor para o elemento nr. A[%2d]: ", I + 1);
scanf("%d", &A[I]);
}
/* Processamento */
for (I = 0; I <= 19; I ++)
B[I] = A[19 - I];
/* Saida de dados */
for (I = 0; I <= 19; I ++)
printf("\nA[%2d] = %2d
|
return 0;

B[%2d] = %2d", I + 1, A[I], I + 1, B[I]);

Exerccio 2A
/* CAP06EX2_A - Capitulo 6 - Exercicio 2A */
#include <stdio.h>
int main(void)
{
int A[5][3], B[5][3], C[5][3], I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 4; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 2; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%d", &A[I][J]);
}
}
printf("\nInforme dados da matriz B\n");
for (I = 0; I <= 4; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 2; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%d", &B[I][J]);

21

}
}
/* Processamento */
for (I = 0; I <= 4; I ++)
for (J = 0; J <= 2; J ++)
C[I][J] = A[I][J] + B[I][J];
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 4; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 2; J ++)
printf("Linha ...: %d %5d\n", J + 1, C[I][J]);
}
return 0;
}

Exerccio 2B
/* CAP06EX2_B - Capitulo 6 - Exercicio 2B */
#include <stdio.h>
int main(void)
{
int A[7], B[7], C[7][2], I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 6; I ++)
{
printf("Dado ...: %d = ", I + 1);
scanf("%d", &A[I]);
}
printf("\nInforme dados da matriz B\n");
for (I = 0; I <= 6; I ++)
{
printf("Dado ...: %d = ", I + 1);
scanf("%d", &B[I]);
}
/* Processamento */
for (I = 0; I <= 6; I ++)
{
C[I][0] = A[I];
C[I][1] = B[I];
}
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 6; I ++)
{

22

Estudo Dirigido de Linguagem C

printf("\nColuna ..: %d\n", I + 1);


for (J = 0; J <= 1; J ++)
printf("Linha ...: %d %5d\n", J + 1, C[I][J]);
}
return 0;
}

Exerccio 2C
/* CAP06EX2_A - Capitulo 6 - Exercicio 2A */
#include <stdio.h>
int main(void)
{
float A[4][5], NUMERO;
int I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 4; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%f", &NUMERO);
A[I][J] = NUMERO;
}
}
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 4; J ++)
printf("Linha ...: %d %5.2f\n", J + 1, A[I][J]);
}
return 0;
}

Exerccio 2D
/* CAP06EX2_D - Capitulo 6 - Exercicio 2D */
#include <stdio.h>
int main(void)
{
int A[5], B[5][3], I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 4; I ++)
{
printf("Valor ...: %d = ", I + 1);

23

scanf("%d", &A[I]);
}
/* Processamento */
for (I = 0; I <= 4; I ++)
{
B[I][0] = A[I] + 5;
B[I][1] = 1;
for (J = 1; J <= A[I]; J ++)
B[I][1] *= J;
B[I][2] = A[I] * A[I];
}
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 4; I ++)
{
printf("B[%d, 1] = %5d | ", I + 1, B[I][0]);
printf("B[%d, 2] = %5d | ", I + 1, B[I][1]);
printf("B[%d, 3] = %5d\n", I + 1, B[I][2]);
}
return 0;
}

Exerccio 2E
/* CAP06EX2_E - Capitulo 6 - Exercicio 2E */
#include <stdio.h>
int main(void)
{
float A[6], B[6], C[6][2], NUMERO;
int I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 5; I ++)
{
printf("Dado ...: %d = ", I + 1);
scanf("%f", &NUMERO);
A[I] = NUMERO;
}
printf("\nInforme dados da matriz B\n");
for (I = 0; I <= 5; I ++)
{
printf("Dado ...: %d = ", I + 1);
scanf("%f", &NUMERO);
B[I] = NUMERO;
}
/* Processamento */
for (I = 0; I <= 5; I ++)

24

Estudo Dirigido de Linguagem C

{
C[I][0] = A[I] * 2;
C[I][1] = B[I] - 5;
}
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 5; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 1; J ++)
printf("Linha ...: %d: %5.2f\n", J + 1, C[I][J]);
}
return 0;
}

Exerccio 2F
/* CAP06EX2_F - Capitulo 6 - Exercicio 2F */
#include <stdio.h>
int main(void)
{
float A[4][4], B[4][4], C[4][4], NUMERO;
int I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 3; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%f", &NUMERO);
A[I][J] = NUMERO;
}
}
printf("\nInforme dados da matriz B\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 3; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%f", &NUMERO);
B[I][J] = NUMERO;
}
}
/* Processamento */
for (I = 0; I <= 3; I ++)
for (J = 0; J <= 3; J ++)
C[I][J] = A[I][J] - B[I][J];
/* Saida dos dados */

25

printf("\nResultados\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 3; J ++)
printf("Linha ...: %d %5.2f\n", J + 1, C[I][J]);
}
return 0;
}

Exerccio 2G
/* CAP06EX2_G - Capitulo 6 - Exercicio 2G */
#include <stdio.h>
int main(void)
{
float A[4][4], NUMERO;
int I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 3; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%f", &NUMERO);
A[I][J] = NUMERO;
}
}
/* Saida dos dados */
printf("\nResultados\n");
for (I = 0; I <= 3; I ++)
for (J = 0; J <= 4; J ++)
if (I == J)
printf("Dado: %5.2f\n", A[I][J]);
return 0;
}

Exerccio 2H
/* CAP06EX2_H - Capitulo 6 - Exercicio 2H */
#include <stdio.h>
int main(void)
{
float A[3][3], NUMERO;
int I, J;
/* Entrada de dados */
printf("\nInforme dados da matriz\n");
for (I = 0; I <= 2; I ++)

26

Estudo Dirigido de Linguagem C

{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 2; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%f", &NUMERO);
A[I][J] = NUMERO;
}
}
/* Processamento e Saida de dados */
for (I = 0; I <= 2; I ++)
for (J = 0; J <= 2; J ++)
if (I == J)
printf("Dado: %5.2f\n", A[I][J] * 2);
else
printf("Dado: %5.2f\n", A[I][J] * 3);
return 0;
}

Exerccio 3A
/* CAP06EX3_A - Capitulo 6 - Exercicio 3A */
#include <stdio.h>
#include <string.h>
int main(void)
{
int I, J;
char A[12][40], X[12];
printf("Listagem de nomes\n\n");
/* Entrada dos dados */
for (I = 0; I <= 11; I ++)
{
printf("Digite o %2do. nome ..: ", I + 1);
fflush(stdin); fgets(A[I], 40, stdin);
}
/* Ordenacao de strings */
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (strcmp(A[I], A[J]) < 0)
{
strcpy(X, A[I]);
strcpy(A[I], A[J]);
strcpy(A[J], X);
}
/* Apresentacao dos nomes */
printf("\n");
for (I = 0; I <= 11; I ++)
printf("Nome: %2d --> %s", I + 1, A[I]);
return 0;
}

27

Exerccio 3B
/* CAP06EX3_B - Capitulo 6 - Exercicio 3B */
#include <stdio.h>
int main(void)
{
int A[8], B[8], I, J, X, ACHA, PESQ;
char RESP;
printf("Classificacao de elementos numericos\n\n");
/* Entrada de dados */
for (I = 0; I <= 7; I ++)
{
printf("Informe o %do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%d", &A[I]);
}
/* Criacao da matriz B */
for (I = 0; I <= 7; I ++)
B[I] = A[I] * 5;
/* Classificacao */
for (I = 0; I <= 6; I ++)
for (J = I + 1; J <= 7; J ++)
if (B[I] > B[J])
{
X = B[I];
B[I] = B[J];
B[J] = X;
}
/* Apresentacao dos dados da matriz B */
printf("\n\n");
for (I = 0; I <= 7; I ++)
printf("O %do. valor da matriz B e': %3d\n", I + 1, B[I]);
/* Processamento da pesquisa enquanto RESP = S */
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o numero a ser pesquisado: ");
fflush(stdin); scanf("%d", &PESQ);
I = 0;
ACHA = 0;
while (I <= 7 && ACHA == 0)
if (PESQ == B[I])
ACHA = 1;
else
I ++;
if (ACHA == 1)
printf("%d foi localizado na posicao %d",PESQ, I+1);
else

28

Estudo Dirigido de Linguagem C

printf("%d nao foi localizado", PESQ);


printf("\n\nContinua? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}

Exerccio 3C
/* CAP06EX3_C - Capitulo 6 - Exercicio 3C */
#include <stdio.h>
int main(void)
{
int A[15], B[15], I, J, X;
printf("Classificacao de elementos numericos\n\n");
/* Entrada de dados */
for (I = 0; I <= 14; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%d", &A[I]);
}
/* Criacao da matriz B */
for (I = 0; I <= 14; I ++)
{
B[I] = 1;
for (J = 1; J <= A[I]; J ++)
B[I] = B[I] * J;
}
/* Classificacao */
for (I = 0; I <= 13; I ++)
for (J = I + 1; J <= 14; J ++)
if (B[I] > B[J])
{
X = B[I];
B[I] = B[J];
B[J] = X;
}
/* Apresentacao dos dados da matriz B */
printf("\n\n");
for (I = 0; I <= 14; I ++)
printf("O %2do. valor da matriz B e': %11d\n", I + 1, B[I]);
return 0;
}

29

Exerccio 3D
/* CAP06EX3_D - Capitulo 6 - Exercicio 3D */
#include <stdio.h>
int main(void)
{
float A[12], B[12], C[12], NUMERO, X;
int I, J;
printf("Classificacao de elementos numericos\n\n");
/* Entrada de dados - Matriz A */
for (I = 0; I <= 11; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
A[I] = NUMERO;
}
/* Classificacao decrescente de A */
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (A[I] < A[J])
{
X = A[I];
A[I] = A[J];
A[J] = X;
}
/* Entrada de dados - Matriz B */
for (I = 0; I <= 11; I ++)
{
printf("Informe o %2do. valor da matriz B: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
B[I] = NUMERO;
}
/* Classificacao decrescente de B */
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (B[I] < B[J])
{
X = B[I];
B[I] = B[J];
B[J] = X;
}
/* Criacao Matriz C */
for (I = 0; I <= 11; I ++)
C[I] = A[I] + B[I];
/* Classificacao crescente de C */
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (C[I] > C[J])
{
X = C[I];

30

Estudo Dirigido de Linguagem C

C[I] = C[J];
C[J] = X;
}
/* Apresentacao dos dados */
printf("\n\n");
for (I = 0; I <= 11; I ++)
printf("%2do. da matriz C e': %3.2f\n", I + 1, C[I]);
return 0;
}

Exerccio 3E
/* CAP06EX3_E - Capitulo 6 - Exercicio 3E */
#include <stdio.h>
#include <string.h>
int main(void)
{
int I, J;
char A[12][40], B[11][40], C[23][40], X[23];
printf("Listagem de nomes\n\n");
/* Entrada dos dados - Matriz A */
for (I = 0; I <= 11; I ++)
{
printf("Digite o %2do. nome feminino ...: ", I + 1);
fflush(stdin); fgets(A[I], 40, stdin);
}
/* Entrada dos dados - Matriz B */
for (I = 0; I <= 10; I ++)
{
printf("Digite o %2do. nome masculino ..: ", I + 1);
fflush(stdin); fgets(B[I], 40, stdin);
}
/* Juncao - Matriz C */
for (I = 0; I <= 22; I ++)
if (I <= 11)
strcpy(C[I], A[I]);
else
strcpy(C[I], B[I - 12]);
/* Ordenacao de strings */
for (I = 0; I <= 21; I ++)
for (J = I + 1; J <= 22; J ++)
if (strcmp(C[I], C[J]) > 0)
{
strcpy(X, C[I]);
strcpy(C[I], C[J]);
strcpy(C[J], X);
}

31

/* Apresentacao dos nomes */


printf("\n");
for (I = 0; I <= 22; I ++)
printf("Nome: %2d --> %s", I + 1, C[I]);
return 0;
}

Exerccio 3F
/* CAP06EX3_F - Capitulo 6 - Exercicio 3F */
#include <stdio.h>
int main(void)
{
float A[20], B[20], PESQ, NUMERO;
int I, ACHA;
char RESP;
printf("Classificacao de elementos numericos\n\n");
/* Entrada de dados */
for (I = 0; I <= 19; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
A[I] = NUMERO;
}
/* Criacao da matriz B */
for (I = 0; I <= 19; I ++)
B[I] = A[I] * A[I] * A[I];
/* Processamento da pesquisa enquanto RESP = S */
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o numero a ser pesquisado: ");
fflush(stdin); scanf("%f", &PESQ);
I = 0;
ACHA = 0;
while (I <= 19 && ACHA == 0)
if (PESQ == B[I])
ACHA = 1;
else
I ++;
if (ACHA == 1)
printf("%f foi localizado na posicao %d",PESQ, I+1);
else
printf("%f nao foi localizado", PESQ);
printf("\n\nContinua? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}

32

Estudo Dirigido de Linguagem C

Exerccio 3G
/* CAP06EX3_G - Capitulo 6 - Exercicio 3G */
#include <stdio.h>
int main(void)
{
float A[18], B[18], PESQ, NUMERO;
int I, ACHA;
char RESP;
printf("Classificacao de elementos numericos\n\n");
/* Entrada de dados */
for (I = 0; I <= 17; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
A[I] = NUMERO;
}
/* Criacao da matriz B */
for (I = 0; I <= 17; I ++)
B[I] = A[I] + 2;
/* Processamento da pesquisa enquanto RESP = S */
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o numero a ser pesquisado: ");
fflush(stdin); scanf("%f", &PESQ);
I = 0;
ACHA = 0;
while (I <= 17 && ACHA == 0)
if (PESQ == B[I])
ACHA = 1;
else
I ++;
if (ACHA == 1)
printf("%f foi localizado na posicao %d",PESQ, I+1);
else
printf("%f nao foi localizado", PESQ);
printf("\n\nContinua? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}

33

Exerccio 3H
/* CAP06EX3_H - Capitulo 6 - Exercicio 3H */
#include <stdio.h>
#include <string.h>
int main(void)
{
int I, J;
char A[10][40], B[10][40];
printf("Listagem de nomes\n\n");
/* Entrada dos dados */
for (I = 0; I <= 9; I ++)
{
printf("Digite o %2do. nome: ", I + 1);
fflush(stdin); fgets(A[I], 40, stdin);
}
/* Inversao */
for (I = 0; I <= 9; I ++)
strcpy(B[I], A[9 - I]);
/* Apresentacao dos nomes da matriz B */
printf("\n");
for (I = 0; I <= 9; I ++)
printf("Nome: %2d --> %s", I + 1, B[I]);
return 0;
}

Exerccio 4
/* CAP06EX4 - Capitulo 6 - Exercicio 4 */
#include <stdio.h>
int main(void)
{
struct CAD_AGENDA
{
char NOME[40];
char ENDERECO[50];
char TELEFONE[10];
};
struct CAD_AGENDA PESSOA[10], X;
int OPCAO, I, J, ACHA;
char RESP, PESQ[40];
OPCAO = 0;
while (OPCAO != 5)
{
printf("\n\n");
printf("Agenda Eletronica\n");

34

Estudo Dirigido de Linguagem C

printf("\n");
printf("[1] - Cadastro\n");
printf("[2] - Classificacao\n");
printf("[3] - Pesquisa\n");
printf("[4] - Listagem\n");
printf("[5] - Fim de programa\n");
printf("\n");
printf("Escolha um opcao: ");
scanf("%d", &OPCAO);
if (OPCAO < 1 || OPCAO > 5)
printf("\n\nOpcao invalida - tente novamente\n\n");
if (OPCAO != 5)
{
if (OPCAO == 1)
{
for (I = 0; I <= 9; I ++)
{
printf("\n");
printf("Entrada de Dados\n");
printf("\n");
printf("Digite o %2do. nome ....: ", I + 1);
fflush(stdin); fgets(PESSOA[I].NOME, 40, stdin);
printf("Digite o endereco .....: ");
fflush(stdin); fgets(PESSOA[I].ENDERECO, 50, stdin);
printf("Digite o telefone .....: ");
fflush(stdin); fgets(PESSOA[I].TELEFONE, 10, stdin);
}
}
if (OPCAO == 2)
{
printf("\n");
printf("Classificacao de Dados\n");
printf("\n");
for (I = 0; I <= 8; I ++)
for (J = I + 1; J <= 9; J ++)
if (strcmp(PESSOA[I].NOME, PESSOA[J].NOME) > 0)
{
X = PESSOA[I];
PESSOA[I] = PESSOA[J];
PESSOA[J] = X;
}
printf("Dados Classificados\n");
}
if (OPCAO == 3)
{
printf("\n");
printf("Pesquisa de Dados\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o nome a ser pesquisado: ");
fflush(stdin); fgets(PESQ, 40, stdin);
I = 0;
ACHA = 0;
while (I <= 9 && ACHA == 0)
if (strcmp(PESQ, PESSOA[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
printf("%s foi localizado na posicao %d\n",PESQ, I+1);

35

printf("\n");
printf("%s", PESSOA[I].NOME);
printf("%s", PESSOA[I].ENDERECO);
printf("%s", PESSOA[I].TELEFONE);
printf("\n");
}
else
printf("%s nao foi localizado", PESQ);
printf("\n\nContinua? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
}
if (OPCAO == 4)
{
printf("\n");
printf("Listagem de Dados\n");
printf("\n");
for (I = 0; I <= 9; I ++)
{
printf("%s ", PESSOA[I].NOME);
printf("%s ", PESSOA[I].ENDERECO);
printf("%s ", PESSOA[I].TELEFONE);
printf("\n");
}
}
}
}
return 0;
}

Captulo 7
Exerccio 1A - Passagem de Parmetro por Referncia
/* CAP07EX1A_R - Captulo 7 - Exercicio 1A - Pass. Par. por Referencia */
#include <stdio.h>
int somatorio(int N);
int main(void)
{
int LIMITE;
char TECLA;
printf("\n\nCalculo de somatorio\n");
printf("\nQual somatorio: ");
fflush(stdin); scanf("%d", &LIMITE);
printf("\nsomatorio de %d = a: %d\n", LIMITE, somatorio(LIMITE));
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;
}
int somatorio(int N)
{

36

Estudo Dirigido de Linguagem C

int I,
SOMA =
for (I
SOMA
return

SOMA;
0;
= 1; I <= N; I ++)
+= I;
SOMA;

Exerccio 1A - Passagem de Parmetro por Valor


/* CAP07EX1A_V - Captulo 7 - Exercicio 1A - Pass. Par. por Valor */
#include <stdio.h>
int somatorio(int N);
int main(void)
{
int LIMITE;
char TECLA;
printf("\n\nCalculo de somatorio\n");
printf("\nQual somatorio: ");
fflush(stdin); scanf("%d", &LIMITE);
somatorio(LIMITE);
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;
}
int somatorio(int N)
{
int I, SOMA;
SOMA = 0;
for (I = 1; I <= N; I ++)
SOMA += I;
printf("\nSomatorio de %d = a: %d\n", N, SOMA);
return 0;
}

Exerccio 1B - Passagem de Parmetro por Referncia


/* CAP07EX1B_R - Captulo 7 - Exercicio 1B - Pass. Par. por Referencia */
#include <stdio.h>
int somatorio(int N);
int main(void)
{
int LIMITE, RESULT;
char TECLA;
printf("\n\nFibonacci\n");
printf("\nEntre o termo Fibonacci: ");
fflush(stdin); scanf("%d", &LIMITE);
RESULT = fibonacci(LIMITE);
printf("\nResultado = %d\n", RESULT);
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;

37

}
int fibonacci(int N)
{
int I, ATUAL, ANTERIOR, PROXIMO;
ANTERIOR = 0;
ATUAL = 1;
for (I = 1; I <= N; I++)
{
PROXIMO = ATUAL + ANTERIOR;
ANTERIOR = ATUAL;
ATUAL = PROXIMO;
}
return ANTERIOR;
}

Exerccio 1B - Passagem de Parmetro por Valor


/* CAP07EX1B_V - Captulo 7 - Exercicio 1B - Pass. Par. por Valor */
#include <stdio.h>
int somatorio(int N);
int main(void)
{
int LIMITE;
char TECLA;
printf("\n\nFibonacci\n");
printf("\nEntre o termo Fibonacci: ");
fflush(stdin); scanf("%d", &LIMITE);
fibonacci(LIMITE);
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;
}
int fibonacci(int N)
{
int I, ATUAL, ANTERIOR, PROXIMO;
ANTERIOR = 0;
ATUAL = 1;
for (I = 1; I <= N; I++)
{
PROXIMO = ATUAL + ANTERIOR;
ANTERIOR = ATUAL;
ATUAL = PROXIMO;
}
printf("\nResultado = a: %d\n", ANTERIOR);
return 0;
}

38

Estudo Dirigido de Linguagem C

Exerccio 1C
/* CAP07EX1C - Captulo 7 - Exercicio 1C */
#include <stdio.h>
int A[10], B[10], C[20];
int
int
int
int

matriz_A(void);
matriz_B(void);
juncao_C(void);
mostra_C(void);

int main(void)
{
printf("Juncao de elementos numericos\n\n");
matriz_A();
matriz_B();
juncao_C();
mostra_C();
return 0;
}
/* Entrada matriz A */
int matriz_A(void)
{
int I;
for (I = 0; I <= 9; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%d", &A[I]);
}
return 0;
}
/* Entrada matriz B */
int matriz_B(void)
{
int I;
for (I = 0; I <= 9; I ++)
{
printf("Informe o %2do. valor da matriz B: ", I + 1);
fflush(stdin); scanf("%d", &B[I]);
}
return 0;
}
/* Juncao matriz C */
int juncao_C(void)
{
int I;
for (I = 0; I <= 19; I ++)
if (I <= 9)
C[I] = A[I];
else
C[I] = B[I - 10];
}

39

/* Mostra C */
int mostra_C(void)
{
int I;
printf("\n\n");
for (I = 0; I <= 19; I ++)
printf("%2do. da matriz C e': %5d\n", I + 1, C[I]);
return 0;
}

Exerccio 1D - Passagem de Parmetro por Referncia


/* CAP07EX1D_R - Captulo 7 - Exercicio 1D - Pass. Par. por Referencia */
#include <stdio.h>
int prestacao(float V, float TX, float T);
int main(void)
{
float TX, T, V, P;
char TECLA;
printf("\n\nPrestacao em atraso\n\n");
printf("Entre com a taxa ....: "); fflush(stdin); scanf("%f", &TX);
printf("Entre com o tempo ...: "); fflush(stdin); scanf("%f", &T);
printf("Entre com o valor ...: "); fflush(stdin); scanf("%f", &V);
P = prestacao(V, TX, T);
printf("\nResultado = %10.2f\n", P);
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;
}
int prestacao(float V, float TX, float T)
{
float P = V + (V * (TX/100) * T);
return P;
}

Exerccio 1D - Passagem de Parmetro por Valor


/* CAP07EX1D_V - Captulo 7 - Exercicio 1D - Pass. Par. por Valor */
#include <stdio.h>
int prestacao(float V, float TX, float T);
int main(void)
{
float TX, T, V;
char TECLA;
printf("\n\nPrestacao em atraso\n\n");
printf("Entre com a taxa ....: "); fflush(stdin); scanf("%f", &TX);
printf("Entre com o tempo ...: "); fflush(stdin); scanf("%f", &T);
printf("Entre com o valor ...: "); fflush(stdin); scanf("%f", &V);
prestacao(V, TX, T);
printf("\nTecle <Enter> para finalizar: ");

40

Estudo Dirigido de Linguagem C

getchar() + scanf("Enter");
return 0;
}
int prestacao(float V, float TX, float T)
{
float P = V + (V * (TX/100) * T);
printf("\nResultado = %10.2f\n", P);
return 0;
}

Exerccio 1E - Passagem de Parmetro por Referncia


/* CAP07EX1E_R - Captulo 7 - Exercicio 1E - Pass. Par. por Referencia */
#include <stdio.h>
int potencia(int BASE, int EXPOENTE);
int main(void)
{
int BASE, EXPOENTE, P;
char TECLA;
printf("\n\nCalculo de Potencia\n\n");
printf("Entre com a base .......: "); fflush(stdin); scanf("%d", &BASE);
printf("Entre com o expoente ...: "); fflush(stdin); scanf("%d", &EXPOENTE);
P = potencia(BASE, EXPOENTE);
printf("\nResultado = %d\n", P);
printf("\nTecle <Enter> para finalizar: ");
getchar() + scanf("Enter");
return 0;
}
int potencia(int BASE, int EXPOENTE)
{
int P, I;
P = 1;
for(I = 1; I <= EXPOENTE; I++)
P *= BASE;
return P;
}

Exerccio 1E - Passagem de Parmetro por Valor


/* CAP07EX1E_V - Captulo 7 - Exercicio 1E - Pass. Par. por Valor */
#include <stdio.h>
int potencia(int BASE, int EXPOENTE);
int main(void)
{
int BASE, EXPOENTE;
char TECLA;
printf("\n\nCalculo de Potencia\n\n");
printf("Entre com a base .......: "); fflush(stdin); scanf("%d", &BASE);
printf("Entre com o expoente ...: "); fflush(stdin); scanf("%d", &EXPOENTE);
potencia(BASE, EXPOENTE);

41

printf("\nTecle <Enter> para finalizar: ");


getchar() + scanf("Enter");
return 0;
}
int potencia(int BASE, int EXPOENTE)
{
int P, I;
P = 1;
for(I = 1; I <= EXPOENTE; I++)
P *= BASE;
printf("\nResultado = %d\n", P);
return 0;
}

Exerccio 1F
/* CAP07EX1F - Captulo 7 - Exercicio 1F */
#include <stdio.h>
float A[12], B[12], C[12];
int
int
int
int
int
int
int

matriz_A(void);
ordena_A(void);
matriz_B(void);
ordena_B(void);
cria(void);
ordena_C(void);
mostra_C(void);

int main(void)
{
printf("Classificacao de elementos numericos\n\n");
matriz_A();
ordena_A();
matriz_B();
ordena_B();
cria_C();
ordena_C();
mostra_C();
return 0;
}
/* Entrada matriz A */
int matriz_A(void)
{
float NUMERO;
int I;
for (I = 0; I <= 11; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
A[I] = NUMERO;
}
return 0;
}
/* Ordenacao de A */

42

Estudo Dirigido de Linguagem C

int ordena_A(void)
{
float X;
int I, J;
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (A[I] > A[J])
{
X = A[I];
A[I] = A[J];
A[J] = X;
}
return 0;
}
/* Entrada matriz B */
int matriz_B(void)
{
float NUMERO;
int I;
for (I = 0; I <= 11; I ++)
{
printf("Informe o %2do. valor da matriz B: ", I + 1);
fflush(stdin); scanf("%f", &NUMERO);
B[I] = NUMERO;
}
return 0;
}
/* Ordenacao de B */
int ordena_B(void)
{
float X;
int I, J;
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)
if (B[I] > B[J])
{
X = B[I];
B[I] = B[J];
B[J] = X;
}
return 0;
}
/* Cria matriz C */
int cria_C(void)
{
int I;
for (I = 0; I <= 11; I ++)
C[I] = A[I] + B[I];
}
/* Ordenacao de C */
int ordena_C(void)
{
float X;
int I, J;
for (I = 0; I <= 10; I ++)
for (J = I + 1; J <= 11; J ++)

43

if (C[I] < C[J])


{
X = C[I];
C[I] = C[J];
C[J] = X;
}
return 0;
}
/* Mostra C */
int mostra_C(void)
{
int I;
printf("\n\n");
for (I = 0; I <= 11; I ++)
printf("%2do. da matriz C e': %3.2f\n", I + 1, C[I]);
return 0;
}

Exerccio 2
/* CAP07EX2 - Captulo 7 - Exercicio 2 */
#include <stdio.h>
struct CAD_AGENDA
{
char NOME[40];
char ENDERECO[50];
char TELEFONE[10];
};
struct CAD_AGENDA PESSOA[10];
int
int
int
int
int

cadastro(void);
consulta(void);
alteracao(void);
remocao(void);
listagem(void);

int main(void)
{
int OPCAO, I, J, ACHA;
char RESP, PESQ[40];
OPCAO = 0;
while (OPCAO != 6)
{
printf("\n\n");
printf("Agenda Eletronica\n");
printf("\n");
printf("[1] - Cadastro\n");
printf("[2] - Consulta\n");
printf("[3] - Alteracao\n");
printf("[4] - Remocao\n");
printf("[5] - Listagem\n");
printf("[6] - Fim de programa\n");
printf("\n");

44

Estudo Dirigido de Linguagem C

printf("Escolha um opcao: ");


scanf("%d", &OPCAO);
if (OPCAO != 6)
{
switch (OPCAO)
{
case 1 : cadastro(); break;
case 2 : consulta(); break;
case 3 : alteracao(); break;
case 4 : remocao();
break;
case 5 : listagem(); break;
default : printf("Opcao invalida - Tecle <Enter>");
getchar() + scanf("Enter"); break;
}
}
}
return 0;
}
int cadastro(void)
{
int I;
for (I = 0; I <= 9; I ++)
{
printf("\n");
printf("Cadastro de Dados\n");
printf("\n");
printf("Digite o %2do. nome ....: ", I +
fflush(stdin); fgets(PESSOA[I].NOME, 40,
printf("Digite o endereco .....: ");
fflush(stdin); fgets(PESSOA[I].ENDERECO,
printf("Digite o telefone .....: ");
fflush(stdin); fgets(PESSOA[I].TELEFONE,
}
return 0;
}

1);
stdin);
50, stdin);
10, stdin);

int consulta(void)
{
char RESP, PESQ[40];
int ACHA, I;
printf("\n");
printf("Consulta de Dados\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o nome a ser consultado: ");
fflush(stdin); fgets(PESQ, 40, stdin);
I = 0;
ACHA = 0;
while (I <= 9 && ACHA == 0)
if (strcmp(PESQ, PESSOA[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
printf("%s foi localizado na posicao %d\n",PESQ, I+1);
printf("\n");
printf("%s", PESSOA[I].NOME);
printf("%s", PESSOA[I].ENDERECO);
printf("%s", PESSOA[I].TELEFONE);

45

printf("\n");
}
else
printf("%s nao foi localizado", PESQ);
printf("\n\nContinua rotina de consulta? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}
int alteracao(void)
{
char RESP, PESQ[40];
int ACHA, I;
printf("\n");
printf("Alteracao de Dados\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o nome a ser alterado: ");
fflush(stdin); fgets(PESQ, 40, stdin);
I = 0;
ACHA = 0;
while (I <= 9 && ACHA == 0)
if (strcmp(PESQ, PESSOA[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
printf("%s foi localizado na posicao %d\n",PESQ, I+1);
printf("\n");
printf("%s", PESSOA[I].NOME);
printf("%s", PESSOA[I].ENDERECO);
printf("%s", PESSOA[I].TELEFONE);
printf("\n");
printf("Deseja alterar dados? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
if (RESP == 'S' || RESP == 's')
{
printf("\n");
printf("Entre os novos dados:\n");
printf("\n");
printf("Digite o %2do. nome ....: ", I + 1);
fflush(stdin); fgets(PESSOA[I].NOME, 40, stdin);
printf("Digite o endereco .....: ");
fflush(stdin); fgets(PESSOA[I].ENDERECO, 50, stdin);
printf("Digite o telefone .....: ");
fflush(stdin); fgets(PESSOA[I].TELEFONE, 10, stdin);
}
}
else
printf("%s nao foi localizado", PESQ);
printf("\n\nContinua rotina de alteracao? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}
int remocao(void)
{
char RESP, PESQ[40];

46

Estudo Dirigido de Linguagem C

int ACHA, I;
printf("\n");
printf("Remocao de Dados\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("\nEntre o nome a ser removido: ");
fflush(stdin); fgets(PESQ, 40, stdin);
I = 0;
ACHA = 0;
while (I <= 9 && ACHA == 0)
if (strcmp(PESQ, PESSOA[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
printf("%s foi localizado na posicao %d\n",PESQ, I+1);
printf("\n");
printf("%s", PESSOA[I].NOME);
printf("%s", PESSOA[I].ENDERECO);
printf("%s", PESSOA[I].TELEFONE);
printf("\n");
printf("Deseja remover dados? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
if (RESP == 'S' || RESP == 's')
{
strcpy(PESSOA[I].NOME, "");
strcpy(PESSOA[I].ENDERECO, "");
strcpy(PESSOA[I].TELEFONE, "");
}
}
else
printf("%s nao foi localizado", PESQ);
printf("\n\nContinua rotina de remocao? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}
int listagem(void)
{
int I;
printf("\n");
printf("Listagem de Dados\n");
printf("\n");
for (I = 0; I <= 9; I ++)
{
if (PESSOA[I].NOME != "")
{
printf("%s ", PESSOA[I].NOME);
printf("%s ", PESSOA[I].ENDERECO);
printf("%s ", PESSOA[I].TELEFONE);
printf("\n");
}
}
return 0;
}

47

Exerccio 3
/* CAP07EX3 - Captulo 7 - Exercicio 3 */
#include <stdio.h>
struct CAD_ALUNO
{
char NOME[41];
float NOTA[4];
};
struct CAD_ALUNO ALUNO[18];
int
int
int
int
int

cadastrar(void);
consultar(void);
alterar(void);
aprovados(void);
reprovados(void);

int main(void)
{
int OPCAO, I, J;
OPCAO = 0;
while (OPCAO != 6)
{
printf("\n\n");
printf("Agenda Escolar\n");
printf("\n");
printf("[1] - Cadastrar\n");
printf("[2] - Consultar\n");
printf("[3] - Alterar\n");
printf("[4] - Aprovados\n");
printf("[5] - Reprovados\n");
printf("[6] - Fim de programa\n");
printf("\n");
printf("Escolha um opcao: ");
scanf("%d", &OPCAO);
if (OPCAO != 6)
{
switch (OPCAO)
{
case 1 : cadastrar(); break;
case 2 : consultar(); break;
case 3 : alterar();
break;
case 4 : aprovados(); break;
case 5 : reprovados(); break;
default : printf("Opcao invalida - Tecle <Enter>");
getchar() + scanf("Enter"); break;
}
}
}
return 0;
}
int cadastrar(void)
{
int I, J;
float NOTA_ALU;

48

Estudo Dirigido de Linguagem C

for (J = 0; J <= 17; J ++)


{
printf("\n");
printf("Cadastro de Alunos\n");
printf("\n");
printf("Informe o nome do %do. Aluno ..: ", J + 1);
fflush(stdin); fgets(ALUNO[J].NOME, 41, stdin);
for (I = 0; I <= 3; I ++)
{
printf("Informe a %da. nota ...........: ", I + 1);
fflush(stdin); scanf("%f", &NOTA_ALU);
ALUNO[J].NOTA[I] = NOTA_ALU;
}
}
return 0;
}
int consultar(void)
{
char RESP, PESQ[41];
int ACHA, I, J;
float SOMA_NT, MEDIA;
printf("\n");
printf("Consulta de Alunos\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("Entre o nome do registro a ser consultado: ");
fflush(stdin); fgets(PESQ, 41, stdin);
I = 0;
ACHA = 0;
while (I <= 17 && ACHA == 0)
if (strcmp(PESQ, ALUNO[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
SOMA_NT = 0;
printf("\n");
printf("Aluno .....: %s", ALUNO[I].NOME);
for (J = 0; J <= 3; J ++)
{
printf("%da. nota ..: %5.2f\n", J + 1, ALUNO[I].NOTA[J]);
SOMA_NT += ALUNO[I].NOTA[J];
}
MEDIA = SOMA_NT / 4;
printf("Media .....: %5.2f", MEDIA);
printf("\n");
}
else
printf("Registro nao foi localizado");
printf("\n\nContinua rotina de consulta? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}
int alterar(void)
{
char RESP, PESQ[41];
int ACHA, I, J;

49

float NOTA_ALU;
printf("\n");
printf("Alteracao de Dados\n");
printf("\n");
RESP = 'S';
while (RESP == 'S' || RESP == 's')
{
printf("Entre o nome do registro a ser alterado: ");
fflush(stdin); fgets(PESQ, 41, stdin);
I = 0;
ACHA = 0;
while (I <= 17 && ACHA == 0)
if (strcmp(PESQ, ALUNO[I].NOME) == 0)
ACHA = 1;
else
I ++;
if (ACHA == 1)
{
printf("Aluno .....: %s", ALUNO[I].NOME);
for (J = 0; J <= 3; J ++)
printf("%da. nota ..: %5.2f\n", J + 1, ALUNO[I].NOTA[J]);
printf("\n");
printf("Deseja alterar dados? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
if (RESP == 'S' || RESP == 's')
{
printf("\n");
printf("Entre os novos dados:\n");
printf("\n");
printf("Informe o nome do Aluno ..: ");
fflush(stdin); fgets(ALUNO[I].NOME, 41, stdin);
for (J = 0; J <= 3; J ++)
{
printf("Informe a %da. nota ......: ", J + 1);
fflush(stdin); scanf("%f", &NOTA_ALU);
ALUNO[I].NOTA[J] = NOTA_ALU;
}
}
}
else
printf("Registro nao foi localizado");
printf("\n\nContinua rotina de alteracao? [S]IM/[N]AO + <Enter>: ");
fflush(stdin); RESP = getchar();
}
return 0;
}
int aprovados(void)
{
int I, J;
float NOTA_ALU, SOMA_NT, MEDIA;
printf("\n");
printf("Alunos Aprovados\n");
printf("\n");
for (I = 0; I <= 17; I ++)
{
SOMA_NT = 0;
for (J = 0; J <= 3; J ++)
SOMA_NT += ALUNO[I].NOTA[J];
MEDIA = SOMA_NT / 4;
if (MEDIA >= 7)
printf("%5.2f - %s", MEDIA, ALUNO[I].NOME);
}

50

Estudo Dirigido de Linguagem C

return 0;
}
int reprovados(void)
{
int I, J;
float NOTA_ALU, SOMA_NT, MEDIA;
printf("\n");
printf("Alunos Reprovados\n");
printf("\n");
for (I = 0; I <= 17; I ++)
{
SOMA_NT = 0;
for (J = 0; J <= 3; J ++)
SOMA_NT += ALUNO[I].NOTA[J];
MEDIA = SOMA_NT / 4;
if (MEDIA < 7)
printf("%5.2f - %s", MEDIA, ALUNO[I].NOME);
}
return 0;
}

Captulo 8
Exerccio A
/* CAP08_A - Captulo 8 - Exercicio A */
#include <stdio.h>
int main(void)
{
int I, A[5];
FILE *PTRARQ;
PTRARQ = fopen("CAP08AB.DBC", "wb");
I = 0;
while (I <= 4)
{
printf("Digite o elemento - %2d: ", I + 1);
fflush(stdin); scanf("%d", &A[I]);
I ++;
}
fwrite(A, sizeof(A), 1, PTRARQ);
fclose(PTRARQ);
return 0;
}

Exerccio B
/* CAP08_B - Captulo 8 - Exercicio B */
#include <stdio.h>
int main(void)
{
int SOMA, I, A[5];

51

FILE *PTRARQ;
PTRARQ = fopen("CAP08AB.DBC", "rb");
fread(A, sizeof(A), 1, PTRARQ);
SOMA = 0;
I = 0;
while (I <= 4)
{
if (I % 2 != 0)
SOMA += A[I];
I ++;
}
fclose(PTRARQ);
printf("%d\n", SOMA);
return 0;
}

Exerccio C
/* CAP08_C - Captulo 8 - Exercicio C */
#include <stdio.h>
int main(void)
{
int I, A[10], B[10], C[10];
FILE *PTRARQ;
PTRARQ = fopen("CAP08C.DBC", "wb");
for (I = 0; I <= 9; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%d", &A[I]);
}
for (I = 0; I <= 9; I ++)
B[I] = A[I] * A[I];
fwrite(B, sizeof(B), 1, PTRARQ);
fclose(PTRARQ);
PTRARQ = fopen("CAP08C.DBC", "rb");
fread(C, sizeof(C), 1, PTRARQ);
for (I = 0; I <= 9; I ++)
printf("C[%2d] = %3d\n", I + 1, C[I]);
fclose(PTRARQ);
return 0;
}

Exerccio D
/* CAP08_D - Captulo 8 - Exercicio D */
#include <stdio.h>
int main(void)
{
int A[4][5], B[4][5], C[4][5], D[4][5], I, J;
FILE *PTRARQ;

52

Estudo Dirigido de Linguagem C

PTRARQ = fopen("CAP08D.DBC", "wb");


printf("\nInforme dados da matriz A\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 4; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%d", &A[I][J]);
}
}
printf("\nInforme dados da matriz B\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 4; J ++)
{
printf("Linha ...: %d = ", J + 1);
scanf("%d", &B[I][J]);
}
}
for (I = 0; I <= 3; I ++)
for (J = 0; J <= 4; J ++)
C[I][J] = A[I][J] + B[I][J];
fwrite(C, sizeof(C), 1, PTRARQ);
fclose(PTRARQ);
PTRARQ = fopen("CAP08D.DBC", "rb");
fread(D, sizeof(D), 1, PTRARQ);
printf("\nResultados\n");
for (I = 0; I <= 3; I ++)
{
printf("\nColuna ..: %d\n", I + 1);
for (J = 0; J <= 4; J ++)
printf("Linha ...: %d %5d\n", J + 1, D[I][J]);
}
fclose(PTRARQ);
return 0;
}

Exerccio E
/* CAP08_E - Captulo 8 - Exercicio E */
#include <stdio.h>
int main(void)
{
int I;
float ENTRA, A[5];
FILE *PTRARQ;
PTRARQ = fopen("CAP08EF.DBC", "wb");
I = 0;

53

while (I <= 4)
{
printf("Digite o elemento - %2d: ", I + 1);
fflush(stdin); scanf("%f", &ENTRA);
A[I] = ENTRA;
I ++;
}
fwrite(A, sizeof(A), 1, PTRARQ);
fclose(PTRARQ);
return 0;
}

Exerccio F
/* CAP08_F - Captulo 8 - Exercicio F */
#include <stdio.h>
int main(void)
{
int I;
float A[5];
FILE *PTRARQ;
PTRARQ = fopen("CAP08EF.DBC", "rb");
fread(A, sizeof(A), 1, PTRARQ);
I = 0;
while (I <= 4)
{
printf("%do. elemento = %5.2f\n", I + 1, A[I]);
I ++;
}
fclose(PTRARQ);
return 0;
}

Exerccio G
/* CAP08_G - Captulo 8 - Exercicio G */
#include <stdio.h>
int main(void)
{
int I;
float ENTRA, A[8], B[8];
FILE *PTRARQ1;
FILE *PTRARQ2;
PTRARQ1 = fopen("ARQ1.DBC", "wb");
for (I = 0; I <= 7; I ++)
{
printf("Informe o %2do. valor da matriz A: ", I + 1);
fflush(stdin); scanf("%f", &ENTRA);
A[I] = ENTRA;
}
fwrite(A, sizeof(A), 1, PTRARQ1);
fclose(PTRARQ1);

54

Estudo Dirigido de Linguagem C

PTRARQ2 = fopen("ARQ2.DBC", "wb");


for (I = 0; I <= 7; I ++)
{
printf("Informe o %2do. valor da matriz B: ", I + 1);
fflush(stdin); scanf("%f", &ENTRA);
B[I] = ENTRA;
}
fwrite(B, sizeof(B), 1, PTRARQ2);
fclose(PTRARQ1);
return 0;
}

Exerccio H
/* CAP08_G - Captulo 8 - Exercicio G */
#include <stdio.h>
int main(void)
{
int I;
float X[8], Y[8], Z[8];
FILE *PTRARQ1;
FILE *PTRARQ2;
PTRARQ1 = fopen("ARQ1.DBC", "rb");
fread(X, sizeof(X), 1, PTRARQ1);
fclose(PTRARQ1);
PTRARQ2 = fopen("ARQ2.DBC", "rb");
fread(Y, sizeof(Y), 1, PTRARQ1);
fclose(PTRARQ1);
for (I = 0; I <= 7; I ++)
Z[I] = X[I] + Y[I];
for (I = 0; I <= 7; I ++)
printf("X[%2d] = %5.2f | Y[%2d] = %5.2f | Z[%2d] = %5.2f\n", I + 1, X[I], I +
1, Y[I], I + 1, Z[I]);
return 0;
}

55