У меня есть эта ошибка, и я не знаю, как ее исправить ([ошибка] несовместимый тип для аргумента 1 'copy')
#include <stdio.h> #include <stdlib.h> struct rec{ char nam[20]; float grd; int id; }; int Read(struct rec happy[]); void Sort(struct rec sad[], int c ); int Strcomp(char *ap, char *bp); void Swapthem( struct rec fish[], int w); void copy (char *cp, char *dp); int main() { struct rec what[20]; int i=0, no=0; no = Read(what); Sort(what, no); getchar() ; return 0; } int Read(struct rec dog[]) { int l=0; FILE *myFile; myFile = fopen("studentrec.txt", "r"); printf("List Unsorted:\n"); while(fscanf(myFile, "%s %d %f", &dog[l].nam, &dog[l].id, &dog[l].grd)!=EOF) { printf("%s\t %d %.2f", dog[l].nam, dog[l].id, dog[l].grd); l=l+1; printf("\n"); } fclose(myFile); return l; } int Strcomp(char *xp, char *yp) { int x = 0; while (xp[x] == yp[x] && xp[x] != '\0') x=x+1; if (xp[x] > yp[x]) return 1; else if (xp[x] < yp[x]) return -1; else return 0; } void Swapthem( struct rec fish[], int m) { int q; m = 0; struct rec temp; q=Strcomp (fish[m].nam, fish[m+1].nam); if (q>0) { copy (temp, fish[m].nam); copy (fish[m].nam, fish[m+1].nam); copy (fish[m+1].nam, temp); } } void Sort(struct rec cat[], int k) { int y, z, c; for (y=0; y<k-1; y=y+1) { for (z=0; y+z<k; z=z+1) { Swapthem(cat, z); } } printf("\nNew List\n\n"); for (c=0; c<k; c=c+1) { printf("%s\t %d %.2f", cat[c].nam, cat[c].id, cat[c].grd); } } void copy (char *cp, char *dp) { int k=0; while(k<20) { cp[k]=dp[k]; k=k+1; } }
Что я уже пробовал:
проблема заключается в функции swapthem, но я использовал эту функцию в предыдущей программе, которая не имела структуры, но когда я использую ее в этой текущей программе, я получаю эту странную ошибку.