benim kodudur: (şamandıra' geçenİşaretçi ile bir diziyi nasıl bir işleve iletebilirim?
uyumsuz işaretçi türleri: i terminalde kodu çalıştırmak çalıştığımızda
#include <stdio.h> #include <stdlib.h> void AverageOfAss(float marks[][101], int numStudents, int numAss, float *avg[]) { int i, j; for (j=0; j<numAss; j++) { *avg[j] = 0; for (i=0; i<numStudents; i++) { *avg[j] += marks[i][j]; *avg[j] = *avg[j]/(float)numStudents*100; return ; } } } void PrintAvg(float *avg[], int numAss) { int i; for (i=0; i<numAss; i++) { printf("Average for Exam %d = %.1f\n", i, *avg[i]); return; } } int main(int argc, char* argv[]) { float grades[1001][101], avgAss[1001]; float *p; int i, j, row, col; p = avgAss; row = atoi(argv[1]); col = atoi(argv[2]); FILE *input_grades; input_grades = fopen("grades.txt", "r"); // READ IN GRADES for (i=0; i<row; i++) { for (j=0; j<col; j++) { fscanf(input_grades, "%f, ", &grades[i][j]); } } // OUTPUT GRADES LIST printf("==================================\n"); printf("Student grades from the input file\n"); printf("==================================\n"); for (i=0; i<row; i++) { printf("\n"); for (j=0; j<col; j++) { printf("%.1f, ", grades[i][j]); } } printf("\n\n"); AverageOfAss(grades, row, col, &avgAss); PrintAvg(&avgAss, col); fclose(input_grades); }
Her şey olması dışında yolunda, bazı uyarılarda gösterdi *): [1001]' türündeki parametre float **'
AverageOfAss (sınıflarda, satır, sütun, & avgAss);
argüman geçen burada 'ort'
void AverageOfAss {
uyumlu ([], [101] numStudents, numAss int * ort [] yüzer int işaretleri float) parametre Çeşidi parametre 'şamandıra (*): [1001] 'şamandıra **'
PrintAvg (& avgAss, sütun) geçen işaretçi türleri;
argüman geçirerek burada 'ort' parametresine
geçersiz PrintAvg (şamandıra * ort [], int numAss) {
kimse benim kodları ne biliyor mu? Ve bunu nasıl düzeltmeliyim? (newbie here)
İlgili olmayan *, * aramaların her iki ucundaki parametre türlerini düzelttikten sonra bile ortalamaları doğru olarak hesaplayamaz. Ve hem döngü için hesaplama hem de for döngüsü için raporlama, döngülerin gövdesine gömülüdür. Onları sadece bir kez yinelemeyi, sonra arayan kişiye geri dönmesini istediğinden şüpheliyim. – WhozCraig
tam olarak şu anda karşı karşıya olduğum gibi, kod çalışır gibi, ancak hesapladığı ortalama yanlış ve numaranın nasıl olduğunu bilmiyorum. Kodlarımdaki sorunun ne olduğunu biliyor musun? – user6089062