Skip to content

Commit d67b916

Browse files
committed
commit
1 parent 4990034 commit d67b916

File tree

9 files changed

+567
-0
lines changed

9 files changed

+567
-0
lines changed

P02/ex11

16.3 KB
Binary file not shown.

P02/ex11.c

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
4+
5+
int main()
6+
{
7+
int pares=0, impares=0;
8+
9+
int n;
10+
printf("Número de elementos: \n");
11+
scanf("%d", &n);
12+
int *v = (int *)malloc(sizeof(int) * n);
13+
if (!v)
14+
{
15+
printf("Falha ao alocar memória para o vetor V\n");
16+
return -1;
17+
}
18+
19+
int *v_pares=NULL;
20+
int *v_impares=NULL;
21+
for (int i = 0; i < n; i++)
22+
{
23+
printf("Introduza o %dº elemento: ", i + 1);
24+
scanf("%d", &v[i]);
25+
26+
if (v[i]%2==0)
27+
{
28+
v_pares=(int*)realloc(v_pares, sizeof(int)*(++pares));
29+
v_pares[pares-1]=v[i];
30+
}
31+
else{
32+
33+
v_impares=(int*)realloc(v_impares, sizeof(int)*(++impares));
34+
v_impares[impares-1]=v[i];
35+
36+
}
37+
38+
}
39+
printf("Vetor originar: [ ");
40+
for (int i = 0; i < n; i++)
41+
{
42+
printf("%d ", v[i]);
43+
}
44+
printf("]\nNúmeros pares: [ ");
45+
for (int i = 0; i < pares; i++)
46+
{
47+
printf("%d ", v_pares[i]);
48+
}
49+
printf("]\nNúmeros impares: [ ");
50+
for (int i = 0; i < impares; i++)
51+
{
52+
printf("%d ", v_impares[i]);
53+
}
54+
printf("]\n");
55+
free(v);
56+
free(v_impares);
57+
free(v_pares);
58+
v = NULL;
59+
v_pares = NULL;
60+
v_impares = NULL;
61+
return 0;
62+
}

P02/ex22

21 KB
Binary file not shown.

P02/ex22.c

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#include "vetor.h"
2+
#include <string.h>
3+
#include <stdlib.h>
4+
#include <stdio.h>
5+
#define NMAX 80
6+
void imprime_vetor(vetor *v)
7+
{
8+
for(int i = 0; i < vetor_tamanho(v); i++)
9+
{
10+
printf("[%d] %s\n", i, vetor_elemento(v, i));
11+
}
12+
}
13+
int main(){
14+
char str[NMAX];
15+
int pos;
16+
vetor *frases= vetor_novo();
17+
vetor *frases2 = vetor_novo();
18+
if (frases==NULL)
19+
{
20+
printf("Erro ao criar o vetor frases. \n");
21+
22+
}
23+
24+
// pedir ao user para introduzir 5 frases e gurdar em frases
25+
for (int i = 0; i < 5; i++)
26+
{
27+
printf("Escreva a %dº frase: ", i+1); fgets(str, NMAX, stdin);
28+
str[strlen(str)-1]='\0';
29+
vetor_insere(frases, str,i);
30+
}printf("\n");
31+
printf("Existem %d elementos no vetor:\n", vetor_tamanho(frases));
32+
33+
//imprime as 5 frases pela ordem inicial
34+
imprime_vetor(frases);
35+
printf("\nIntroduza uma nova frase: "); fgets(str, NMAX, stdin);str[strlen(str)-1]='\0';
36+
pos=vetor_pesquisa(frases, str);
37+
if(pos!=-1){
38+
vetor_remove(frases, pos);
39+
}
40+
else{
41+
printf("\nFrase não encontrada na lista anterior\n");
42+
43+
}
44+
printf("\nVetor apos remocao: \n");
45+
imprime_vetor(frases);
46+
vetor_ordena(frases);
47+
printf("\nVetor ordenado:\n");
48+
imprime_vetor(frases);
49+
printf("\n");
50+
for (int i = 0; i < 5; i++)
51+
{
52+
printf("Escreva a %dº frase: ", i+1); fgets(str, NMAX, stdin);
53+
str[strlen(str)-1]='\0';
54+
vetor_insere(frases2, str,i);
55+
}printf("\n");
56+
//concatena imprime o concatenado
57+
vetor *y = vetor_concatena(frases, frases2);
58+
vetor_apaga(frases);
59+
vetor_apaga(frases2);
60+
printf("\nO vetor concatenado destes dois é:[ ");
61+
for (int i = 0; i < vetor_tamanho(y); i++)
62+
{
63+
if (i==vetor_tamanho(y)-1)
64+
{
65+
printf("%s ", vetor_elemento(y, i));
66+
}
67+
else{printf("%s; ", vetor_elemento(y, i));}
68+
69+
}
70+
printf("]\n");
71+
if(!vetor_inverte(y)){printf("Não é possivel inverter o vetor\n");}
72+
73+
printf("\nO vetor concatenado invertido é:[ ");
74+
for (int i = 0; i < vetor_tamanho(y); i++)
75+
{
76+
if (i==vetor_tamanho(y)-1)
77+
{
78+
printf("%s ", vetor_elemento(y, i));
79+
}
80+
else{printf("%s; ", vetor_elemento(y, i));}
81+
82+
}
83+
printf("]\n");
84+
85+
86+
//free de tudo o que usamos
87+
free(frases->elementos);
88+
free(frases);
89+
free(frases2->elementos);
90+
free(frases2);
91+
free(y->elementos);
92+
free(y);
93+
frases=NULL;
94+
frases2=NULL;
95+
y=NULL;
96+
97+
return 0;
98+
}

P02/ex33

16.5 KB
Binary file not shown.

P02/ex33.c

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
#include <string.h>
4+
#define NMAX 80
5+
#define NSTRINGS 3
6+
7+
int main()
8+
{
9+
char **v;
10+
char str[NMAX];
11+
int i, pos;
12+
v = malloc(NSTRINGS * sizeof(char*));
13+
for (int i = 0; i < NSTRINGS; i++)
14+
{
15+
v[i]=NULL;
16+
}
17+
18+
while(1)
19+
{
20+
for(i = 0; i < NSTRINGS; i++)
21+
{
22+
printf("[%d] ", i+1);
23+
if(v[i] == NULL)
24+
printf("(vazio)\n");
25+
else
26+
printf("%s\n", v[i]);
27+
}
28+
29+
do
30+
{
31+
printf("Posicao para nova string (1 a %d): ", NSTRINGS);
32+
scanf("%d", &pos);
33+
getchar(); /* elimina \n */
34+
}
35+
while(pos < 0 || pos > NSTRINGS);
36+
37+
if (pos == 0)
38+
break;
39+
40+
printf("Nova String: ");
41+
fgets(str, NMAX, stdin);
42+
str[strlen(str) - 1] = '\0';
43+
44+
v[pos - 1] = realloc(v[pos - 1], strlen(str)+1);
45+
strcpy(v[pos - 1], str);
46+
}
47+
for (int i = 0; i < NSTRINGS; i++)
48+
{
49+
free(v[i]);
50+
v[i]=NULL;
51+
}
52+
free(v);
53+
v=NULL;
54+
return 0;
55+
}

0 commit comments

Comments
 (0)