Dev - C++ - [AYUDA] Resolver el siguiente código y completarlo con lo pedido

 
Vista:

[AYUDA] Resolver el siguiente código y completarlo con lo pedido

Publicado por Cristhian (2 intervenciones) el 05/10/2018 17:51:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
ESTUDIE este programita modular en lenguaje C con vectores y modifíquelo para que haga lo siguiente, cada punto
	en una rutina especifica:
 
	a.	Inicializar un tercer vector con el resultado de elevar a a la b donde la base a es cada número del primero vector y el exponente b es cada número del segundo vector.
	b.	Hallar el mayor del primer vector y la posición en la que está. Tenga en cuenta que el vector
	c.	Inicializar un vector con las posiciones del segundo vector donde hay potencias de 2. Mostrarlas en la rutina resultados y decir cuántas hay. Debe usar la función es_pot_de_2 que se da.
 
	Los resultados de a, b y c se escriben al final en la rutina resultados.
	Sugerencia: a medida que vaya solucionando a, b o c, vaya escribiendo los resultados,
	es decir, actualizando la rutina que tiene ese nombre.
	Fecha actual: 5 de octubre de 2018
	Prueba corta 9
*/
#include <stdio.h>
#include <stdlib.h>
#define MTV 20
 
int main(void)
{
int vector1[MTV], vector2[MTV], a_a_la_b[MTV], pos_pot2[MTV],tv, menor, cant_pot2;
/* Prototipos */
void datosvectores(int [ ], int [ ], int*);
void eleva(void);
void mayorvalor(void);
void donde_pot2(void);
void resultados(int [ ], int [ ], int);
 
printf ("\n\nEste programita pide dos vectores num%cricos y los escribe.\n", 130);
printf ("\n\nHalla el mayor del primer vector y la posici%cn en la que est%c\n", 162, 160);
printf ("Tambi%cn inicializa un tercer vector con el resultado de elevar a^b donde la base a es cada n%cmero del primero vector\n",130,163);
printf ("y el exponente b es cada n%cmero del segundo vector\n",163);
printf ("Finalmente, inicializa un vector con las posiciones del segundo vector donde hay potencias de 2.\n\n");
 
datosvectores(vector1, vector2, &tv);
eleva();
mayorvalor();
donde_pot2();
resultados(vector1, vector2, tv);
printf("\n\nFin.\n\n");
system ("pause");
}
 
datosvectores(int v1[ ], int v2[ ], int *tv)
{
void pide_entero (int , int, int *, const char [ ]);
void leevec(int [ ], int);
 
pide_entero (0, MTV, tv, "Cantidad de valores");
leevec(v1, *tv);
leevec(v2, *tv);
}
 
void pide_entero (int min, int max, int *num, const char mensaje[ ])
{
do {
	printf ("%s (entre %d y %d) ",mensaje,min+1,max);
	scanf("%d",num);
}
while (*num < min || *num > max);}
 
void leevec(int v[ ], int tv)
{
int pos;
printf("\nN%cmeros enteros:\n\n",163);
for (pos=0; pos < tv; pos++){
    printf("\n>> ",pos);
    scanf ("%d",&v[pos]);
}
}
 
void eleva(void)
{
void elevar_p(int, int, int *);
 
}
 
void elevar_p(int m, int n, int *res)
{
int veces;
*res=1;
for (veces=1; veces<=n; veces++)
     *res=*res*m;
}
 
void mayorvalor(int tv, int vector1[MTV], int*)
{
	int m;
	int mayorvalor=0;
	for (m=0; m<tv; m++){
		if (vector1 [tv] > mayorvalor){
			mayorvalor=vector1[tv];
		}
	}
	printf("El mayor es %d\n", mayorvalor);
}
 
void donde_pot2(void)
{
int es_pot_de_2(int, int*);
 
}
 
void es_pot_de_2(int num, int * si_pot2) // Averigua si num es potencia de 2
{
int valor;
 
*si_pot2 = 0;	// Se supone que num no es potencia de 2
valor = 1;
while(valor < num)
    valor = valor * 2;
if(valor == num) *si_pot2 = 1;	// num sí es potencia de 2
}
 
void resultados(int v1[ ], int v2[ ], int tv)
{
void escvec(int [ ], int, const char [ ]);
printf ("\n\nDados: \n\n");
escvec(v1, tv, "Vector 1");
printf ("\ny: \n");
escvec(v2, tv, "Vector 2");
// printf ("\n\nEl resultado de elevar cada n%cmero del vector 1 a cada n%cmero del vector 2 es:\n",163, 163);
// printf ("El mayor del vector 1 es %d y se encuentra en la posici%cn %d.\n", mayor, pos_may); 
// printf ("En las siguientes %d posiciones del vector 2 hay potencias de 2:\n", cant_pot2 );
// escvec(v3, cant_pot2, "Vector de posiciones con potencias de 2");
}
 
void escvec(int v[ ], int tv, const char cual_vec[ ])
{
int pos;
printf ("\n%s\n", cual_vec);
for (pos=0; pos < tv; pos++)
    printf("%d ",v[pos]);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder