Работа с файлами: "excepted primary expression before '[' token" - C (СИ)
Формулировка задачи:
Выдает ошибку в 40 строчке "excepted primary expression before '[' token"
#include <stdio.h> #include <stdlib.h> #include <string.h> struct Autonoma { int numurs; float cena; char nosaukums[50]; }; int massk() { FILE * fails; fails = fopen ("katalogs.txt", "r"); int lines=0; char ch; rewind(fails); while(!feof(fails)) { ch = fgetc(fails); if(ch == '\n') { lines++; } } return lines; fclose(fails); } void fill_noma(struct cat[]) { FILE * fails; fails = fopen ("katalogs.txt", "r"); int massk=0; while (!feof (fails)) { fscanf (fails, "%d %s %f", &cat [massk].numurs, &cat [massk].nosaukums, &cat [massk].cena); massk++; } fclose(fails); } void print_noma(int sk, struct cat[sk]){ int g; for(g=0;g<sk;g++) { printf ("%d. ", g); printf ("%d ", cat[g].numurs); printf ("%s ", cat[g].nosaukums); printf ("%.2feur\n\n", cat[g].cena); } } void pasutijums(int sk, int grozs[sk] , struct Autonoma cat[sk]) { int lietNr,i; float summa=0; printf("Ievadiet jusu lietotaja ID:\n"); scanf("%d", &lietNr); char failNos[20]; sprintf(failNos, "%d", lietNr); strcat(failNos, ".txt"); FILE * pas; pas = fopen (failNos, "w+"); fprintf(pas, "Cien. Lietotaj nr %d\nJusu pasutijums ir pienjemts un driz tiks apstradats :)\nJus pasutijat sekojosas proceduras:\n", lietNr); for(i=0;i<sk;i++) { if(grozs[i]!=0) fprintf(pas, "uz %d reizem %s",grozs[i], cat[i].nosaukums); summa+=grozs[i]*cat[i].cena; } fprintf(pas, "\nUn summa ir %.2f!",summa); fclose(pas); } int main() { int sk=massk()+1; int grozs[sk], iziet=4, npk, masssk, i, j; float summa=0; for(i=0;i<sk;i++)grozs[i]=0; struct Autonoma noma[sk]; fill_noma(&noma); do{ printf("Iziet: 0\nParadit katalogu: 1\nPievienot grozam: 2\nParadit grozu: 3\nRediget grozu: 4\nVeikt pasutijumu: 5\n"); for(j=0; j<sk; j++) { printf(" %d", grozs[j]);} scanf("%d", &iziet); system("cls"); switch(iziet) { case 1: print_noma(sk, &noma); break; case 2: printf("1.Pedikirs \n 2.Manikirs \n 3.Solarijs \n 4.Meikaps \n 5.Sejas maska \n 6. Frizura \n"); printf("Ievadiet proceduras Nr: "); scanf("%d", &npk); printf("Ievadiet sk: "); scanf("%d", &masssk); grozs[npk-1]=masssk; break; case 3: for(i=0;i<sk;i++) { if(grozs[i]!=0) { printf("uz %d reizem %s",grozs[i], noma[i].nosaukums); summa=grozs[i]*noma[i].cena; // printf("\nSumma: %.2f\n", summa); } } break; case 4: printf("Ievadiet, kuru proceduru velaties iznemt no groza:\n"); scanf("%d", &npk); printf("Ievadiet proceduru sk:\n"); scanf("%d", &masssk); grozs[npk-1]=masssk; break; case 5: pasutijums(sk, &grozs, &noma); } }while(iziet!=0); }
Решение задачи: «Работа с файлами: "excepted primary expression before '[' token"»
textual
Листинг программы
void fill_noma(struct Autonoma *cat[])
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д