ilk sayısı temp
, temp2
ve temp3
int
, ama yeniden atama double
değişkenlere geri bu değerleri sonra onlara double
değerler atayarak ve olmasıdır. Bunları double
yapmalısınız.
Bu nesneleri sıralamak için qsort()
kullanmayı düşünebilirsiniz.
#include <stdlib.h> // for qsort
int compare_products(const void *p1, const void *p2)
{
const struct product *product1 = p1;
const struct product *product2 = p2;
// swap product1 and product2 around to reverse sort order
return (int)(product1->sale_volume - product2->sale_volume);
}
int main()
{
// ...
qsort(products, line_amount, sizeof(struct product), compare_products);
for(i = 0; i < line_amount; i++){
fprintf(pFile, "%s \t %lf \t %lf \t %lf\n", products[i].name, products[i].unit_price, products[i].tot_pounds_sold, products[i].sale_volume);
}
// ...
}
Eğer selection_sort
işlevi kullanmak zorunda olduğundan
, bunun nedeni atanabilir olmak
struct
nesnelere biraz daha basit hale getirilebilir.
void selection_sort(struct product products[], int n)
{
int i, largest = 0;
if (n == 1) {
return;
}
for (i = 0; i < n; i++) {
if (products[i].sale_volume > products[largest].sale_volume) {
largest = i;
}
}
struct product temp = products[n - 1];
products[n - 1] = products[largest];
products[largest] = temp;
selection_sort(products, n - 1);
}
'temp',' temp2' ve 'değişkenler int' tüm' temp3', ama onlara 'double' değerleri atamak ve sonra geri double' değerlere' oradan da tekrar atayın. Bunları çifte yapmalısın. “I” ve “en büyük” değişkenler “int” olarak kalabilir. – dreamlax
Programınızın ne yapması gerektiğini açıkça belirtmediniz. "Üzüm numarası en düşük sayı" nın, programın ne yapması gerektiğini bilemeyen birine çok anlamlı geldiğini düşünüyor musunuz? Ve sen girişi vermedin. – kaylum
Lütfen soruları cevapları geçersiz kılacak şekilde düzenlemeyin! –