Estoy tratando de hacer un multi-base de datos del programa en C.

Aquí está el código:

#include<stdio.h>
#include<stdlib.h>
#include "function.c"
int main()
{
info();
example();
printf("\n\n\n");
char name[1][10], id[1][10], grade[1][1];
char choice;
int x=0;
int sal[1];
FILE *fp;
printf("Would you like to continue? Y/N: ");
scanf("%c",&choice);
fflush(stdin);
if(choice == 'Y' || choice == 'y')
{
system("cls");
fp = fopen("database.txt","w");
if(fp == NULL)
{
printf("File does not exist!");
return 0;
}
else
{
while(x<=1)
{
printf("Enter Employee name no.%d: ",(x+1));
scanf("%s",name[x]);
fprintf(fp, "Employee Name: %s\n",name);
printf("Enter Employee ID: ");
scanf("%s",id[x]);
fprintf(fp, "Employee ID: %s\n",id);
printf("Enter Employee Grade Level (A-E): ");
scanf("%s",grade[x]);
fprintf(fp, "Employee Grade Level: %s\n",grade);
printf("Enter Employee's Basic Salary: ");
scanf("%d",&sal[x]);
fprintf(fp, "Employee's Basic Salary: %d\n\n\n",sal);
printf("Employee's bonus: %d\n",bonus(grade[x],sal[x]));
printf("Employee's allowance: %d\n",allowance(grade[x], sal[x]));
printf("\n");
}
}   
fclose(fp);
}
else
{
return 0;
}
return 0;
}

función.c :

#include<stdio.h>
#include "function.h"
int bonus(char *grade[1][], int *sal[])
{
int bonus;
int *b;
int x;
b = &bonus;
for(x=0;x<=1;x++)
{
switch(*grade[x])
{
case 'A':
bonus = (1/4) * *sal[x];
break;
case 'B':
bonus = (1/5) * *sal[x];
break;
case 'C':
bonus = (15/100) * *sal[x];
break;
case 'D':
bonus = (1/10) * *sal[x];
break;
case 'E':
bonus = (5/100) * *sal[x];
break;
default:
printf("Invalid Choice!!");
break;
}
return bonus;
}
}
int allowance(char *grade[1][], int *sal[])
{
int all;
int *a;
int x;
a = &all;
for(x=0;x<=1;x++)
{
switch(*grade[x])
{
case 'A':
all = (3/10) * *sal[x];
break;
case 'B':
all = (6/25) * *sal[x];
break;
case 'C':
all = (9/50) * *sal[x];
break;
case 'D':
all = (3/25) * *sal[x];
break;
case 'E':
all = (3/50) * *sal[x];
break;
default:
printf("Invalid Choice!!");
break;
}
return all;
}
}

función.h:

#ifndef _FUNCTION_H_INCLUDED
#define _FUNCTION_H_INCLUDED
int bonus(char *grade[][], int *sal[]); //prototype for calculating bonus
int allowance(char *grade[][], int *sal[]); //prototype for allowance
void info(); //prototype for information
void example(); //prototype for example
#endif

Cuando intento compilar el programa, me sale:

2   0   function.c  In file included from function.c
4   17  function.h  [Error] array type has incomplete element type
5   21  function.h  [Error] array type has incomplete element type
4   17  function.c  [Error] array type has incomplete element type
function.c  In function 'bonus':
18  19  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
21  19  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
24  22  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
27  20  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
30  21  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
function.c  At top level:
41  21  function.c  [Error] array type has incomplete element type
function.c  In function 'allowance':
54  17  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
57  17  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
60  17  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
63  17  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')
66  17  function.c  [Error] invalid operands to binary * (have 'int' and 'int *')

No sé cuál es el problema (soy un principiante en la programación de C).

Mi primera pregunta: ¿Qué tipo de matriz se ha incompleta tipo de elemento de decir?
Siguiente pregunta: ¿por Qué sigo recibiendo los operandos no válidos a binario * error?

Cualquier ayuda se agradece.

  • Ahora mismo sólo estoy tratando de envolver mi cabeza alrededor de la finalidad de las cosas, como char name[1][10].
  • Señor,Que el error fue realmente difícil de leer me formatearon por favor, acepte mis editar
  • gracias por el formato!
  • Estoy básicamente de la creación de una base de datos donde tengo la entrada del usuario, el nombre de un empleado, dni, sueldo, etc. y la impresión que en un archivo de texto.
  • sir,donde es la función.h código ?
  • sólo agregó.

InformationsquelleAutor Nithin Kumar | 2013-08-17

2 Comentarios

  1. 2

    para «Mi primera pregunta: ¿Qué tipo de matriz se ha incompleta tipo de elemento de decir?»

    este error ocurre debido a que en lenguaje c, se necesita especificar el tamaño de la matriz si no se declara como

    int arr[] = {6,1,2,3};

    lo contrario

    debe ser int arr[<size of the array>];

    validez de los operandos a binario * error?

    ocurre porque usted está tratando de multiplicar int y int * valores

    considera la posibilidad de ver este http://forums.devshed.com/c-programming-42/dynamic-arrays-with-undeclared-size-62036.html

    y leer más tutoriales sobre punteros y arrays y cómo mezclarlos

  2. 1

    En las declaraciones en function.h, se tiene:

    int bonus(char *grade[][], int *sal[]);

    Usted no puede salir de todas las dimensiones; tiene que especificar un número para cada una de las dimensiones de una matriz, excepto, tal vez, la primera. Por ejemplo, esto podría ser legítimo:

    int bonus(char *grade[][20], int *sal[]);

    No he comprobado si 20 es el número apropiado, pero un cierto número debe ser utilizado en el contexto.

    Esto está provocando el » incompleto de la matriz de tipo de mensaje.

    • Uno podría preguntarse porque las dimensiones son necesarias: Para que el compilador sea capaz de calcular la dirección de un elemento de la matriz, se necesita saber el tamaño de los elementos de la matriz. Si los elementos de la matriz son en sí mismos matrices, se necesita saber el tamaño de los arrays.

Dejar respuesta

Please enter your comment!
Please enter your name here