Complicações ou funcionamento duvidoso podem ser reais
se o comando return não for usado corretamente,.
Podemos evitar isto quando um programa possui funções mais complicadas.
Neste código limitei o comando return em um só na função
int Comp_Caractere ( int a, int b );
O comando return provoca um interrrompimento imediato da função executada
retornando um valor para a função onde foi chamado e prosseguindo com a execução.
O programa compara dois vetores dinâmicos que são preenchidos por entradas
de dados com scanf(); desde o seu início até as posições máximas de cada um.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
se o comando return não for usado corretamente,.
Podemos evitar isto quando um programa possui funções mais complicadas.
Neste código limitei o comando return em um só na função
int Comp_Caractere ( int a, int b );
O comando return provoca um interrrompimento imediato da função executada
retornando um valor para a função onde foi chamado e prosseguindo com a execução.
O programa compara dois vetores dinâmicos que são preenchidos por entradas
de dados com scanf(); desde o seu início até as posições máximas de cada um.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <conio.h>
#define tam 20
int Comp_Caractere ( int a, int b ) {
int res = 0;
if ( a == b )
res = a;
else if ( a > b ) {
res = b;
} else if ( a < b ) {
res = a;
}
return res;
}
int main ( ) {
system ( "title
COMPARANDO DOIS VETORES DE CARACTERES" );
char *A, *B;
int i, p, q, n = 0;
A = ( char* ) malloc ( tam * sizeof(char) );
B = ( char* ) malloc ( tam * sizeof(char) );
do {
clrscr ( );
textcolor ( LIGHTRED );
gotoxy ( 24, 3 );
printf ( "COMPARANDO
DOIS VETORES DE CARACTERES" );
textcolor ( LIGHTBLUE );
gotoxy ( 24, 5 );
printf ( "Quantos
caracteres terá o vetor A ? " );
textcolor ( LIGHTRED );
scanf ( "%d", &p );
fflush ( stdin );
textcolor ( LIGHTGREEN );
gotoxy ( 20, 9 );
if ( p < 0 || p > tam ) {
printf ( "\aNúmero
Acima de 0 e menor que %d ", tam );
getche ( );
system ( "cls" );
}
} while ( ( p < 0 ) || ( p > tam ) );
for ( i = 0; i <= p; i++ ) {
system ( "cls" );
textcolor ( LIGHTRED );
gotoxy ( 24, 3 );
printf ( "COMPARANDO
DOIS VETORES DE CARACTERES" );
textcolor ( LIGHTBLUE );
gotoxy ( 32, 5 );
printf ( "Insira o " );
textcolor ( LIGHTRED );
gotoxy ( 40, 5 );
printf ( " %do", i + 1 );
textcolor ( LIGHTBLUE );
gotoxy ( 44, 5 );
printf ( "caracter : " );
textcolor ( LIGHTRED );
scanf ( "%c", &A [ i ] );
fflush ( stdin );
}
do {
clrscr ( );
textcolor ( LIGHTRED );
gotoxy ( 24, 3 );
printf ( "COMPARANDO
DOIS VETORES DE CARACTERES" );
textcolor ( LIGHTBLUE );
gotoxy ( 24, 5 );
printf ( "Quantos
caracteres terá o vetor B ? " );
textcolor ( LIGHTRED );
scanf ( "%d", &q );
fflush ( stdin );
textcolor ( LIGHTGREEN );
gotoxy ( 20, 9 );
if ( q < 0 || q > tam ) {
printf ( "\aNúmero
Acima de 0 e menor que %d ", tam );
getche ( );
system ( "cls" );
}
} while ( ( q < 0 ) || ( q > tam ) );
for ( i = 0; i <= q; i++ ) {
system ( "cls" );
textcolor ( LIGHTRED );
gotoxy ( 24, 3 );
printf ( "COMPARANDO
DOIS VETORES DE CARACTERES" );
textcolor ( LIGHTBLUE );
gotoxy ( 32, 5 );
printf ( "Insira o " );
textcolor ( LIGHTRED );
gotoxy ( 40, 5 );
printf ( " %do", i + 1 );
textcolor ( LIGHTBLUE );
gotoxy ( 44, 5 );
printf ( "caracter : " );
textcolor ( LIGHTRED );
scanf ( "%c", &B [ i ] );
fflush ( stdin );
}
textcolor ( LIGHTBLUE );
gotoxy ( 22, 7 );
printf ( "caracteres
inseridos no vetor A ==> " );
textcolor ( LIGHTRED );
printf ( "%d", p + 1 );
textcolor ( LIGHTRED );
gotoxy ( 22, 9 );
for ( i = 0; i <= p; i++ ) {
printf ( " %c ", A [ i ] );
}
textcolor ( LIGHTBLUE );
gotoxy ( 22, 11 );
printf ( "caracteres
inseridos no vetor B ==> " );
textcolor ( LIGHTRED );
printf ( "%d", q + 1 );
textcolor ( LIGHTRED );
gotoxy ( 22, 13 );
n = Comp_Caractere ( p, q );
for ( i = 0; i <= q; i++ ) {
printf ( " %c ", B [ i ] );
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 22, 14 );
for ( i = 0; i <= n; i++ ) {
if ( A [ i ] > B [ i ] ) {
printf ("\n\t\tO %d°
elemento do vetor A é maior do que o %d° do vetor B",
( i + 1 ), ( i + 1 ) );
}
if ( A [ i ] < B [ i ] ) {
printf ("\n\t\tO %d°
elemento do vetor A é menor do que o %d° do vetor B",
( i + 1 ), ( i + 1 ) );
} else {
if ( A [ i ] == B [ i ] ) {
printf ("\n\t\tO %d°
elemento do vetor B é igual ao %d° do vetor A",
( i + 1 ), ( i + 1 ) );
}
}
}
printf ( "\n\t\tO vetor
A tem %d elementos", p + 1 );
printf ( "\n\t\tO vetor
B tem %d elementos", q + 1 );
if ( p > q ) {
printf ( "\n\t\tO vetor
A tem %d elementos a mais que o vetor B",
p - q );
} else if ( q > p ) {
printf ( "\n\t\tO vetor
B tem %d elementos a mais que o vetor A",
q - p );
} else if ( p == q ) {
printf ( "\n\t\tO vetor
A tem o mesmo número de elementos do vetor B" );
}
free ( A );
free ( B );
textcolor ( LIGHTRED );
printf ( "\n\n\t\t\t\tMUITO
OBRIGADO" );
getche ( );
exit ( 0 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.