
AYUDA URGENTE PROGRAMA EN C++
Publicado por Christian Marcelo (3 intervenciones) el 10/09/2014 02:47:24
Hola, soy principiante en este programa, me da este error, no se a que se refiere, ni como puedo solucionarlo, adjunto mi codigo y error. saludos
SALUDOS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_ALFABETO 50 //cambiar arreglo por palabra matriz
#define MAX_ESTADOS 50
#define MAX_ENTRADAS 80
int verificar(char arreglo_entrada[], char alfabeto[]){
int distintos, aprobados=0, i, j;
for (i=0; i<strlen(arreglo_entrada); i++){
distintos=0;
for (j=0; j<strlen(alfabeto); j++){
if (arreglo_entrada[i]!=alfabeto[j]){
distintos++;
}
else {
aprobados++;
}
if (distintos==strlen(alfabeto)){
return 0;
}
}
}
if (aprobados==strlen(arreglo_entrada)){
return 1;
}
}
int procesar(char arreglo_entrada[], char alfabeto[], int estado_inicial, int arreglo[][], char estados_finales[]){
int i;
int posicion_letra;
int posicion_final;
int resultado;
for (i=0; i<strlen(arreglo_entrada); i++){
for (i=0; i<strlen(alfabeto); i++){
if (arreglo_entrada[i]==alfabeto[i]){
posicion_letra=i;
}
}
if (i=0){
posicion_final=arreglo[estado_inicial][posicion_letra];
}
else {
posicion_final=arreglo[posicion_final][posicion_letra];
}
}
for (i=0; i<strlen(estados_finales); i++){
if (estados_finales[i]==posicion_final) {
return 1;
}
else {
return 0;
}
}
}
main(int argc, char *argv[]){
FILE *archivo;
char alfabeto[MAX_ALFABETO];
int numero_estados;
int estado_inicial;
int cant_estados_finales;
char estados_finales[MAX_ESTADOS];
char arreglo[MAX_ESTADOS][MAX_ALFABETO];
int i,j;
int cantidad_cadenas;
char arreglo_entrada[MAX_ENTRADAS];
int veces=0;
if (argc!=2) {
printf("Uso correcto: %s nombre-archivo-automata\n", argv[0]);
exit(EXIT_FAILURE);
}
archivo = fopen(argv[1], "r");
if (archivo==NULL) {
printf("Error abriendo el archivo %s\n", argv[1]);
exit(EXIT_FAILURE);
}
fscanf(archivo, "%s", alfabeto);
fscanf(archivo, "%d", &numero_estados);
fscanf(archivo, "%d", &estado_inicial);
fscanf(archivo, "%d", &cant_estados_finales);
printf("EL alfabeto es: %s\n", alfabeto);
printf("El numero de estados totales es: %d\n", numero_estados);
printf("EL estado inicial es: %d\n", estado_inicial);
printf("El numero de estados finales de este archivo es: %d\n", cant_estados_finales);
printf("Estados finales: \n");
for (i=0; i<cant_estados_finales; i++){
fscanf(archivo, "%s", &estados_finales[i]);
estados_finales[i]=(estados_finales[i]-48);
printf("%d\n", estados_finales[i]);
}
for (i=0; i<numero_estados; i++){
for (j=0; j<strlen(alfabeto); j++){
fscanf(archivo, "%s", &arreglo[i][j]);
arreglo[i][j]=(arreglo[i][j]-48);
printf("%d", arreglo[i][j]);
}
printf("\n");
}
printf("Primera letra del alfabeto: %c\n", alfabeto[0]);
printf("Ingrese cantidad de cadenas a verificar: ");
scanf("%d", &cantidad_cadenas);
while (veces<cantidad_cadenas){
printf("Ingrese cadena: ");
scanf("%s", arreglo_entrada);
printf("El arreglo es: %s\n", arreglo_entrada);
veces++;
printf("El arreglo fue:");
if (verificar(arreglo_entrada,alfabeto)==1){
procesar(arreglo_entrada,alfabeto, estado_inicial,arreglo, estados_finales);
}
else{
printf("ERROR");
}
char arreglo_entrada[MAX_ENTRADAS]= {0};
}
}
1
2
3
4
5
6
7
8
9
christian@christian-RV410-RV510-S3510-E3510:~/Escritorio$ gcc nuevo.c -o nuevo
nuevo.c:31:79: error: array type has incomplete element type
int procesar(char arreglo_entrada[], char alfabeto[], int estado_inicial, int arreglo[][], char estados_finales[]){
^
nuevo.c: In function ‘main’:
nuevo.c:124:4: error: type of formal parameter 4 is incomplete
procesar(arreglo_entrada,alfabeto, estado_inicial,arreglo, estados_finales);
^
christian@christian-RV410-RV510-S3510-E3510:~/Escritorio$
SALUDOS
Valora esta pregunta


0