ayuda con struct
Publicado por iceman (4 intervenciones) el 23/08/2005 05:27:29
necesito ayuda con esta estructura y no entiendo donde esta el problema
y me arroja el error ´micajita' undeclared(first use this function), le agradeceria mucho a quien me pueda ayudar
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int dato;
struct micajita *sgte;
}tiponodo;
void main(void){
int resultado;
int i;
int indice;
int numero;
int opcion;
int valor=7;
printf("cuantas cajitas desea ingresar");
scanf("%d",& numero);
for(i=0;i<numero;i++){
micajita->dato=(i+1);
}
printf("1-inserta cajita");
printf("2-devulve el contenido de la cajita");
printf("3-devuelve el largo de la lista");
printf("4-elimina la cajita seleccionada");
printf("5-ingrese opcion");
scanf("%d",& opcion);
switch(opcion){
case 1:{
inserta(&micajita,valor);
printf("se ha ingresado una cajita");
}
case 2:{
int indice;
printf("indique el indice del nodo que quiere saber el valor");
scanf("%d",& indice);
resultado=devuelve(&micajita, indice);
printf("el valor del nodo %d es: %d",indice,resultado);
}
case 3:{
resultado= largo(&micajita);
printf("el largo de la lista es %d",resultado);
}
case 4:{
int pos;
printf("ingrese el indice del nodo el cual quiera eliminar");
scanf("%d",& pos);
elimina(& micajita,pos);
printf("3l nodo %d fue eliminado",pos);
}
}
}
void inserta(tiponodo *micajita, int indice){
int valor=0;
condicion=vacia(&micajita);
if(condicion==0){
tiponodo *nueva;
nueva=(tiponodo*)malloc(sizeof(tiponodo));
nueva->dato=valor;
if(micajita->sgte==NULL);
nueva->sgte=micajita;
micajita=nueva;
micajita->sgte=NULL;
}
else{
printf("la lista esta vacia");
}
}
int devuelve(tiponodo *micajita, int indice){
int valor=0;
int i;
for(i=0;i<indice;i++){
valor=micajita->dato;
}
}return valor;
int largo(tiponodo *micajita);
int cont=0;
while(micajita->sgte!=NULL){
cont++;
}
}return cont;
void eliminar(tiponodo *micajita,int indice){
tiponodo *tmp;
int i;
for(i=0;i<(indice-1);i++){
tmp=micajita->sgte;
}
if(tmp->sgte!=NULL){
micajita->sgte=tmp->sgte;
}
else{
micajita->sgte=NULL;
}
free(tmp);
int vacia(tiponodo *micajita){
if(micajita==NULL){
return 1;
}
else{
return 0;
}
}
y me arroja el error ´micajita' undeclared(first use this function), le agradeceria mucho a quien me pueda ayudar
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int dato;
struct micajita *sgte;
}tiponodo;
void main(void){
int resultado;
int i;
int indice;
int numero;
int opcion;
int valor=7;
printf("cuantas cajitas desea ingresar");
scanf("%d",& numero);
for(i=0;i<numero;i++){
micajita->dato=(i+1);
}
printf("1-inserta cajita");
printf("2-devulve el contenido de la cajita");
printf("3-devuelve el largo de la lista");
printf("4-elimina la cajita seleccionada");
printf("5-ingrese opcion");
scanf("%d",& opcion);
switch(opcion){
case 1:{
inserta(&micajita,valor);
printf("se ha ingresado una cajita");
}
case 2:{
int indice;
printf("indique el indice del nodo que quiere saber el valor");
scanf("%d",& indice);
resultado=devuelve(&micajita, indice);
printf("el valor del nodo %d es: %d",indice,resultado);
}
case 3:{
resultado= largo(&micajita);
printf("el largo de la lista es %d",resultado);
}
case 4:{
int pos;
printf("ingrese el indice del nodo el cual quiera eliminar");
scanf("%d",& pos);
elimina(& micajita,pos);
printf("3l nodo %d fue eliminado",pos);
}
}
}
void inserta(tiponodo *micajita, int indice){
int valor=0;
condicion=vacia(&micajita);
if(condicion==0){
tiponodo *nueva;
nueva=(tiponodo*)malloc(sizeof(tiponodo));
nueva->dato=valor;
if(micajita->sgte==NULL);
nueva->sgte=micajita;
micajita=nueva;
micajita->sgte=NULL;
}
else{
printf("la lista esta vacia");
}
}
int devuelve(tiponodo *micajita, int indice){
int valor=0;
int i;
for(i=0;i<indice;i++){
valor=micajita->dato;
}
}return valor;
int largo(tiponodo *micajita);
int cont=0;
while(micajita->sgte!=NULL){
cont++;
}
}return cont;
void eliminar(tiponodo *micajita,int indice){
tiponodo *tmp;
int i;
for(i=0;i<(indice-1);i++){
tmp=micajita->sgte;
}
if(tmp->sgte!=NULL){
micajita->sgte=tmp->sgte;
}
else{
micajita->sgte=NULL;
}
free(tmp);
int vacia(tiponodo *micajita){
if(micajita==NULL){
return 1;
}
else{
return 0;
}
}
Valora esta pregunta


0