Duda ejercicio C

Iniciado por dennis094, 19 Diciembre 2013, 14:49 PM

0 Miembros y 1 Visitante están viendo este tema.

dennis094

Buenas,
resulta que en clase me han pasado el siguiente ejercicio, y la verdad es que no tengo ni idea de por donde cogerlo... si me pudierais echar una mano os lo agradeceria  ;D.

**Indique los tipos de datos precisos para que el codigo que se muestra, funcione correctamente **

void modifica (tipoB *tb){
int i,j;
(*tb).y++;
for(i=0;i<MAX2;i++){
for(j=0;j<MAX3;j++){
scanf("%c", &(*tb).z[i][j].c1);
scanf("%s", (*tb).z[i][j].c2);
}
}
return;
}


int main(int argc, char *argv[]) {
tipoA a;
int i;
        .....
for(i=0;i<MAX1;i++){
if(a[i].x){
modifica(&a[i]);
}
}
return 0;
}


El otro ejercicio que tampoco se me ocurre es el siguiente:

**Dado el codigo siguiente que permite sumar todos los valores de "a" de un array de registros "V" con 2 campos "a" y "b" siempre y cuando "b" sea verdadero, indique el conjunto de instrucciones mas adecuado para rellenar los huecos:**


#define N 20
.....

aux = .........
for(i=0;....;i++)
       if(.....)
          aux = aux + ......

dato000

No soy un experto, pero te dejo mis observaciones:


// **Indique los tipos de datos precisos para que el codigo que se muestra, funcione correctamente **

#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;

void modifica (tipoB& *tb){ // usando & se usa la referencia a la estructura de manera que se modifique sin retorno, sin afectar el void
int i,j;
(*tb).y++; // podria usarse --->tb->y
for(i=0;i<MAX2;i++){     // No se sabe que cantidad es MAX2
for(j=0;j<MAX3;j++){ // No se sabe que cantidad es MAX3
scanf("%c", &(*tb).z[i][j].c1); //imaginando que z es un array con un número de datos determinado tipo char
scanf("%s", (*tb).z[i][j].c2);  //imaginando que z es un array con un número de datos determinado tipo string
}
}
//return; // No debe retornar nada porque es una función vacia, void
}


int main(int argc, char *argv[]) {
tipoA a; // No se sabe la naturaleza de la estructura tipoA, así que solo podemos pensar en un modo simple
int i;
         //.....  // Esos puntos no dejan nada a la luz del código, es mejor ponerlo completo
for(i=0;i<MAX1;i++){
if(a[i].x){
modifica(a[i]);
}
}
return 0;
}



#define N 20
.....

aux = .........
for(int i = 0; i < N  ; i++)
{
        if(.....)
        {
           aux = aux + ...... //bien podria sumarse N, "aux = aux + N;"   o   "aux += N;"
        }
}


Slds



rir3760

Cita de: dennis094 en 19 Diciembre 2013, 14:49 PMresulta que en clase me han pasado el siguiente ejercicio, y la verdad es que no tengo ni idea de por donde cogerlo... si me pudierais echar una mano os lo agradeceria
En buen plan: Ya que se trata de un trabajo de clase deberías publicar tus respuestas y porque piensas que son correctas. A partir de ahí ya podríamos ayudarte.

Eso porque 1) Hacer tareas va contra las reglas de los foros y 2) la idea es que tu aprendas en el proceso (si no te esfuerzas no es posible).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

dennis094

Ya lo se, de hecho llevo bastante tiempo en este foro y nunca he pedido ningun ejercicio, no os pido que lo resolvais por mi, sino que me ayudeis a resolverlo, no darme el ejercicio hecho y fuera...
Si lo he preguntado ha sido porque no tenia ni idea de por donde cogerlo

leosansan

#4
El primero va de estructuras y ahí ando flojo, pero el segundo puede ser algo tan simple como:

Código (cpp) [Seleccionar]

#include <stdio.h>
#define N 20

int  main(void){
   int i,aux;
   aux=0;
   for(i=0;i<=N;i++)
       if(i%2==0)
           aux=aux+i;
   printf ("La suma de los pares de 1 a %d es %d",N,aux);
   return 0;
}


Saluditos! ..... !!!!