问题遇到的现象和发生背景 题目内容:
书有书名(字符串长度不超过50字节),价格(单精度实数),分类(正整数)。
书的结构定义如下:
struct book
{
char name[50];
float price;
int classification;
};
输入n本书(n<=100),及每本书的书名,价格和分类(空格分隔输入数据),
请分别根据价格递增顺序排序,如果价格相同,则按照书名(ASCII码)递增排序。
最后输出排序后的结果,每行一本书详细信息,按照:书名,价格(保留2位小数),分类由逗号分隔。
例子:
输入:
3
program 35 1
history 35 2
cloudy-computing 57 1
输出
history,35.00,2
program,35.00,1
cloudy-computing,57.00,1
问题相关代码,请勿粘贴截图 #include <stdio.h>
#include <stdlib.h>
struct book
{
char name[50];
float price;
int classification;
};
int main() {
int n;
scanf_s("%d", &n);
struct book bo[100], bo1;
for (int i = 0;i < n;++i)
{
scanf_s("%s%f%d", bo[i].name,50,&bo[i].price, &bo[i].classification);
}
for (int q = 0;q < n - 1;++q)
{
for (int p = 0;q < n - p - 1;q++)
{
if (bo[q].price > bo[q + 1].price)
{
bo1 = bo[q];
bo[q] = bo[q + 1];
bo[q + 1] = bo1;
}
else if (bo[q].price == bo[q + 1].price)
{
if (bo[q].name[0] > bo[q + 1].name[0])
{
bo1 = bo[q];
bo[q] = bo[q + 1];
bo[q + 1] = bo1;
}
}
}
}
for (int i = 0;i < n;++i)
{
printf("%s,%.2f,%d\n", bo[i].name, bo[i].price, bo[i].classification);
}
system("pause");
return 0;
}
运行结果及报错内容 编译错误
a.cpp: In function 'int main1()':
a.cpp:11:18: error: 'scanf_s' was not declared in this scope