Primer programa en C con vectores

Iniciado por sora_ori, 30 Noviembre 2012, 12:08 PM

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

sora_ori

Buenas,

En clase me acaban de mandar unos ejercicios en C y comenzamos por vectores y la verdad es que tengo poca idea sobre C porque no hemos practicado nada.


Tengo que hacer un programa que llene un vector de 10 elementos con valores enteros y que además muestre la suma de los valores que se encuentran en posiciones del vector multiplos de 3.


Yo hice algo así con la ayuda de Google   :silbar:


#include <stdio.h>
# include <stdlib.h>
int v[100];
void main ()

int main(int argc, char **argv)
{
int cont,vector;
printf("Ingrese la cantidad de elementos\n");
scanf("%d",&cont);
for (cont=0;i<vector;i++)
{
return 0;
}

dato000

http://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-en-c/

los vectores yo los conozco como arreglos, puedes trabajarlos unidimensionales, bi-tri-multi...

CitarTengo que hacer un programa que llene un vector de 10 elementos con valores enteros y que además muestre la suma de los valores que se encuentran en posiciones del vector multiplos de 3.

Primero tendrias que inicializar un arreglo, por ejm:

un arreglo de enteros de 10 elementos/posiciones:
Citar
int vector[10]

si necesitas sumar los números que sean multiplos de tres, debes tener en cuenta que las posiciones de un arreglo para un programador siempre empezaran desde 0, así que para el caso de 10 posiciones, serán, de 0 - 9.

Citar
int vector[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

hay varias formas de inicializar un arreglo, mira el link que tiene info precisa y muy clara sobre el uso de vectores.


include <stdio.h>
include <stdlib.h>

int main(int argc, char **argv)

{

         int cont;
         int vector[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
         int i=0;
         printf("Ingrese la cantidad de elementos\n");
         scanf("%d",&cont);
           
             
             do{
                    cont += vector[i];
                    i += 3;
             }while(i<=9);


             
          printf("el resultado de la suma es:  %d", cont);
          return 0;

}


para un caso en el que el indice aumenta en diferentes proporciones, es mejor usa un do-while o un while, el for es excelente para manejo de vectores multi-dimensionales que aumentan en uno.



twins

hola aqui esta el ejercicio si tienes dudas, consultas no dudes en preguntarme  ;D saludos

#include<stdio.h>
int main(void){
int vector[10],i,suma=0;
//llenamos el vector
for(i=0;i<10;i++){
printf("Ingrese elementos\n");
scanf("%i",&vector[i]);
}
printf("\n");
//imprimimos el vector
for(i=0;i<10;i++)
printf("[%i]",vector[i]);
//sumamos todos los elementos que sean multiplos de 3
printf("\n");
for(i=0;i<10;i++){
if(vector[i]%3==0)
suma+=vector[i];
}
printf("\n");
//se imprime la suma total
printf("La suma de los elementos multiplos de 3 son %i",suma);
return(0);
}

sora_ori

Gracias por la ayuda, pero tengo un problema y es que cuando se hace la suma se cierra la ventana.

Se tendría que hacer un pause verdad?

leosansan

CitarUna apreciación:

   for(i=0;i<10;i++) <== mejor que i++ es i=i+3
      if(vector%3==0)<== y me ahorro esta operacion
Saluditos!.

leosansan

#5
Cita de: sora_ori en  1 Diciembre 2012, 10:44 AM
Gracias por la ayuda, pero tengo un problema y es que cuando se hace la suma se cierra la ventana.

Se tendría que hacer un pause verdad?
No tendría porque, pero si la quieres:
Código (cpp) [Seleccionar]
#include<stdio.h>
int main(void){
int vector[10],i,suma=0;
   for(i=0;i<10;i++){
printf("Ingrese elementos: ");
scanf("%i",&vector[i]);
}
puts("\n");
for(i=0;i<10;i++)
printf("[%i]",vector[i]);
   puts("\n");
for(i=0;i<10;i=i+3)
       suma+=vector[i];
printf("\n");
//se imprime la suma total
printf("La suma de los elementos multiplos de 3 son %i\n",suma);
    getchar ();
    printf("\nPresiona Enter para acabar.");
    while (getchar()!= '\n');
   return(0);
}

Saluditos!.

twins

Exactamente yo utilizo el compilador mingw, este compilador pone una pausa automaticamente al finalizar el programa,tu puedes poner una pausa poniendo antes del return(0) la opcion getchar dos veces si no te funciona debes incluir la libreria #include<stdlib.h> ,saludos

rir3760

Cita de: twins en  1 Diciembre 2012, 23:05 PM
Exactamente yo utilizo el compilador mingw, este compilador pone una pausa automaticamente al finalizar el programa
Para ser exactos es el IDE (entorno de desarrollo integrado, por ejemplo Code::Blocks) el que genera la pausa.

Cita de: twins en  1 Diciembre 2012, 23:05 PMtu puedes poner una pausa poniendo antes del return(0) la opcion getchar dos veces si no te funciona debes incluir la libreria #include<stdlib.h>
Dos problemas con esa solución son: 1) Siendo estrictos la pausa no es parte del programa (de nuevo eso es responsabilidad del IDE) y 2) No funciona si en la ultima entrada de datos se introduce un espacio seguido del avance de linea (en ese caso hay que colocar tres llamadas a getchar, historia sin fin).

Por ultimo antes de utilizar la función getchar se debe incluir el encabezado <stdio.h>.

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

sora_ori

Gracias por la ayuda compañeros.

Se me complica un poco aprender todo esto en dos días porque es mi primer programa y el profesor ya podría haber empezado desde la base para enterarse mejor.


La segunda parte del ejercicio me dice que ahora la suma ya no la pide. Solo los 10 vectores y que luego el usuario escriba un numero y diga si esta en la lista.



Saludos

leosansan

Procura colgar antes parte del código que llevas. Pero como ya habías puesto lo anterior una ayudita:
Código (cpp) [Seleccionar]
#include<stdio.h>
int main(void){
int vector[10],i,num;
    for(i=0;i<3;i++){
printf("Ingrese elementos: ");
scanf("%d",&vector[i]);
}
puts("\n");
for(i=0;i<10;i++)
printf("[%i]",vector[i]);
    puts("\n");
printf("Ingrese un numero: ");
scanf("%d",&num);
for(i=0;i<10;i++){
        if (num==vector[i]){
            printf("\nEsta en la lista");
            return 1;
        }
}
    puts("\nNo esta en la lista");
    return(0);
}

Saluditos!.