书籍排序
从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,按单价从小到大排序并输出排序后的书籍信息。
输入输出示例:括号内为说明,无需输入输出
输入样例:
3 (n=3)
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
20
输出样例:`
Programming in VB 18.5
Programming in Delphi 20.0
Programming in C 21.5
答案:
#include <stdio.h>
struct book {
char name[50];
float price;
}books[10],temp; //temp作为一个临时结构变量
int main() {
int n, i, p;
scanf("%d", &n);
getchar();
for (i = 0; i < n; i++) {
gets(books[i].name);
scanf("%f", &books[i].price);
getchar();
}//赋值给结构变量
for (int i = 0; i < n - 1; i++)
{
p = i;
for (int j = i; j < n; j++)
if (books[p].price > books[j].price)
p = j;
temp = books[p];
books[p] = books[i];
books[i] = temp;
}//选择法排序
for (i = 0; i < n; i++) {
printf("%s %.1f", books[i].name, books[i].price);
printf("\n");
}
return 0;
}