Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Pregunta N° 1
- //gcc 5.4.0
- #include <stdio.h>
- #include <stdlib.h>
- #define NULA -1
- typedef struct cancion {
- int codigo;
- int totalRep;
- } Cancion;
- int busqueda(Cancion *, int , int);
- void mostrar(Cancion *, int);
- int comparar(const void *,const void *);
- int main(void)
- {
- int cod,rep;
- Cancion *vector = NULL; //vector con Info de canciones
- int totalCanciones = 0; //total de canciones
- do {
- scanf("%d",&cod);
- if (cod == 0) break;
- scanf("%d",&rep);
- int posicion = busqueda(vector,totalCanciones,cod);
- if (posicion == NULA) {
- vector = (Cancion *) realloc (vector,sizeof(Cancion) * (totalCanciones + 1));
- if (vector == NULL) return 0;
- vector[totalCanciones].codigo = cod;
- vector[totalCanciones].totalRep = rep;
- totalCanciones++;
- }
- else {
- vector[posicion].totalRep+=rep;
- }
- } while (cod != 0);
- if (totalCanciones > 0 ) {
- qsort(vector,totalCanciones,sizeof(Cancion),comparar);
- mostrar(vector,totalCanciones);
- }
- return 0;
- }
- int busqueda(Cancion *vector, int n , int clave)
- {
- int i;
- for (i = 0 ; i < n ; i++) {
- if (vector[i].codigo == clave) return i;
- }
- return NULA;
- }
- void mostrar(Cancion *vector, int n)
- {
- int i;
- printf(" _______________________ ________________________\n");
- printf("| CODIGO CANCION | TOTAL REPRODUCCIONES |\n");
- printf("|_______________________|________________________|\n");
- printf("| | |\n");
- for (i = 0 ; i < n ; i++)
- {
- printf("| %21d | %21d |\n",vector[i].codigo,vector[i].totalRep);
- }
- printf("|_______________________|________________________|\n");
- }
- int comparar(const void *a,const void *b){
- Cancion *ptrA = (Cancion *) a;
- Cancion *ptrB = (Cancion *) b;
- return (ptrA->totalRep < ptrB->totalRep) ;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Pregunta N° 2
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct carton {
- int numCarton; //Nº de Carton
- int numerosJugados[6]; //Números Jugados en el cartón (6 exactamente)
- int numAciertos; //Nº de Aciertos en el cartón
- } Carton;
- typedef struct sorteo {
- int totalCartones; //Total Cartones Jugados en el sorteo
- Carton *cartonesSorteo; //cartones Jugados en el sorteo (vector dinámico)
- Carton cartonGanador; //carton Ganador del Sorteo
- } Sorteo;
- void leerDatosSorteo(Sorteo *);
- void procesarDatosSorteo(Sorteo *);
- void mostrarResultadosSorteo(Sorteo);
- void leerDatosSorteo(Sorteo *elSorteo){
- int i, j, aux = 0;
- elSorteo->cartonesSorteo = (Carton*) malloc( sizeof(Carton) );
- scanf("%d",&elSorteo->totalCartones);
- elSorteo->cartonesSorteo = (Carton*) realloc(elSorteo->cartonesSorteo, (elSorteo->totalCartones)*sizeof(Carton));
- for(i = 0; i < elSorteo->totalCartones; i++){
- scanf("%d",&aux);
- aux--;
- elSorteo->cartonesSorteo[aux].numCarton = aux+1;
- elSorteo->cartonesSorteo[aux].numAciertos = 0;
- for(j = 0; j < 6; j++){
- scanf("%d",&elSorteo->cartonesSorteo[aux].numerosJugados[j]);
- }
- }
- for(j = 0; j < 6; j++){
- scanf("%d",&elSorteo->cartonGanador.numerosJugados[j]);
- }
- /*//Printf
- for(i = 0; i < elSorteo->totalCartones; i++){
- printf("N° Carton: %d ", elSorteo->cartonesSorteo[i].numCarton);
- printf("N° Aciertos: %d\n", elSorteo->cartonesSorteo[i].numAciertos);
- for(j = 0; j < 6; j++){
- printf("%d ", elSorteo->cartonesSorteo[i].numerosJugados[j]);
- }
- printf("\n");
- }
- */
- }
- void procesarDatosSorteo(Sorteo *elSorteo){
- int i, j, k;
- for(i = 0; i < 6; i++){
- for(j = 0; j < elSorteo->totalCartones; j++){
- /*if(elSorteo->cartonGanador.numerosJugados[i] == elSorteo->cartonesSorteo[j].numerosJugados[i]){
- elSorteo->cartonesSorteo[j].numAciertos += 1;
- }*/
- for(k = 0; k < 6; k++){
- if(elSorteo->cartonGanador.numerosJugados[i] == elSorteo->cartonesSorteo[j].numerosJugados[k]){
- elSorteo->cartonesSorteo[j].numAciertos += 1;
- }
- }
- }
- }
- //Printf
- /*for(i = 0; i < elSorteo->totalCartones; i++){
- printf("N° Carton: %d ", elSorteo->cartonesSorteo[i].numCarton);
- printf("N° Aciertos: %d\n", elSorteo->cartonesSorteo[i].numAciertos);
- for(j = 0; j < 6; j++){
- printf("%d ", elSorteo->cartonesSorteo[i].numerosJugados[j]);
- }
- printf("\n");
- }*/
- }
- void mostrarResultadosSorteo(Sorteo elSorteo){
- int i;
- for(i = 0; i < elSorteo.totalCartones; i++){
- printf("Carton # %d obtuvo %d aciertos",(i+1),elSorteo.cartonesSorteo[i].numAciertos);
- if(elSorteo.cartonesSorteo[i].numAciertos == 6){
- printf(" ***CARTON GANADOR***");
- }
- printf("\n");
- }
- }
- /**/
- int main(){
- Sorteo elSorteo;
- leerDatosSorteo(&elSorteo);
- procesarDatosSorteo(&elSorteo);
- mostrarResultadosSorteo(elSorteo);
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Pregunta N° 3
- //gcc 5.4.0
- #include <stdio.h>
- #include <stdlib.h>
- /* Prototipo de la función de comparar */
- int comparar(const void *arg1, const void *arg2)
- {
- if(*(int *)arg1 < *(int *)arg2) return -1;
- else if(*(int *)arg1 > *(int *)arg2) return 1;
- else return 0;
- }
- int main(){
- long long int *vector;
- long long int cont = 0, i;
- vector = (long long int*) malloc (sizeof(long long int));
- do{
- if(cont > 0){
- if((cont-1)%2 != 0){
- qsort(vector, cont, sizeof(vector[0]), comparar);
- /*for(i = 0; i < cont; i++){
- for(j = i+1; j < cont; j++){
- if(vector[i] > vector[j]){
- aux = vector[i];
- vector[i] = vector[j];
- vector[j] = aux;
- }
- }
- }*/
- cont -= 2;
- for(i = 1; i < cont; i+=2){
- if(vector[i] != vector[i+1]){
- break;
- }
- }
- cont++;
- if(i != cont){
- printf("NO\n");
- }else{
- for(i = 1; i < cont; i++){
- if(i%2 == 0){
- printf("%lld ",vector[i]);
- }
- }
- printf("%lld",vector[cont]);
- cont--;
- for(i = cont; i >= 1; i--){
- if(i%2 != 0){
- printf(" %lld",vector[i]);
- }
- }
- printf("\n");
- }
- }else{
- printf("NO\n");
- }
- }
- cont = 1;
- for(i = 0; i >= 0; i++){
- vector = (long long int*) realloc (vector, cont*(sizeof(long long int)));
- scanf("%lld",&vector[i]);
- if(vector[i] < 0){
- cont = 0;
- break;
- }
- if(vector[i] == 0){
- break;
- }
- cont++;
- }
- }while(vector[0] != 0);
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Pregunta N° 4
- //gcc 5.4.0
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Ciudad{
- int dinero;
- int premio;
- }ciudad;
- int main(void){
- ciudad *vector;
- int cont = 1,i ;
- vector = (ciudad*) malloc(cont*sizeof(ciudad));
- if(vector == NULL){
- return 0;
- }
- do{
- vector = (ciudad*)realloc(vector, cont*sizeof(ciudad));
- if(vector == NULL){
- return 0;
- }
- scanf("%d",&vector[cont-1].dinero);
- if(vector[cont-1].dinero == 0){
- break;
- }
- scanf("%d",&vector[cont-1].premio);
- cont++;
- }while(vector[cont-2].dinero != 0);
- if(cont == 1){
- return 0;
- }
- /*for(int i = 0; i < cont-1; i++){
- printf("%d %d\n", vector[i].dinero, vector[i].premio);
- }*/
- for(i = 0; i < cont-2; i++){
- if((vector[i].dinero != vector[i+1].dinero)||(vector[i].premio != vector[i+1].premio)){
- break;
- }
- }
- int posmayor;
- if(i == cont-2){
- printf("SI FUE JUSTA");
- }else{
- //De aqui para abajo no funca
- posmayor = 0;
- //Encontrar la posición del mayor
- for(i = 0; i < cont-1; i++){
- if(vector[posmayor].dinero <= vector[i].dinero){
- posmayor = i;
- }
- }
- //printf("posmayor: %d\n",posmayor);
- int pospremio = 0;
- //Revisar si la ciudad que puso más dinero es la que ganó más premios
- for(i = 0; i < cont-2; i++){
- if(vector[pospremio].premio <= vector[i].premio){//&&(vector[posmayor].dinero != vector[i].dinero)){
- //printf("%d %d\n", vector[i].dinero, vector[i].premio);
- pospremio = i;
- }
- }
- /*if(i == cont-1){
- printf("SI FUE JUSTA");//Si la ciudad que puso más dinero es la que ganó más premios
- }else{
- printf("NO FUE JUSTA");//Si la ciudad que puso más dinero "NO" es la que ganó más premios
- }*/
- if(posmayor == pospremio){
- printf("SI FUE JUSTA");//Si la ciudad que puso más dinero es la que ganó más premios
- }else{
- printf("NO FUE JUSTA");//Si la ciudad que puso más dinero "NO" es la que ganó más premios
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment