Jump to content

Problema con C


Recommended Posts

hola a todos:

 

estoy haciendo una tarea donde me piden pasar punteros a funciones pero estos punteros apuntan a un vector.

Este es el codigo que escribi pero no se porque me dice que le paso un int** a una funcion que espera un int*

 

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

#ifndef TAMAÑO
#define TAMAÑO 10
#endif
int suma_array(int * arreglo);
void muestra_array(int * arreglo);
void llena_arreglo(int * arreglo);
void main(){
int opcion = 10;
int * arreglo = NULL;
printf("Ingrese una opcion: \n1. Llenar arreglo\n2. Mostrar arreglo\n3. Sumar arreglo");
scanf("%d", &opcion);
while(1){
 switch(opcion) {
  case 1: {
   arreglo = (int *)malloc(sizeof(int)*10);
   llena_arreglo(&arreglo);
   break;
  }
  case 2: {
   if(arreglo != NULL) {
 muestra_array(&arreglo);
 break;
   } else {
 printf("ERROR");
 break;
   }
  }
  case 3: {
   if(arreglo != NULL){
 printf("La suma del arreglo es: %d",suma_array(&arreglo));
   } else {
 printf("ERROR");
   }
   break;
  }
  default: {
   printf("ERROR");
  }
 }
}
}
void llena_arreglo(int * arreglo) {
srand ( (unsigned)time ( NULL ) );
int i = 0;
for (i; i < TAMAÑO; i++)
{
 *(arreglo + i) = rand()%100;
}
muestra_array(&arreglo);
}
void muestra_array(int * arreglo) {
   int i = 0;
for (i; i < TAMAÑO; i++)
{
 printf("Nº %d: %d\n",i+1, *(arreglo + i));
}
}
int suma_array(int * arreglo) {
int suma = 0;
for (int i = 0; i < TAMAÑO; i++)
{
 suma = suma + *(arreglo + i);
}
return suma;
}

 

Desde ya muchas gracias

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...