C语言习题有一题不是太清楚,求高手指教,谢谢!

题目:编写程序,从键盘输入10本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。源程序:#include<stdio.h>#defineN... 题目:编写程序,从键盘输入10本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。
源程序:
#include<stdio.h>
#define NUMBER 10
struct book{
char name;
double price;
};
int main(void)
{
int i,index,temp,k;
struct book s[NUMBER];
for(i=0;i<NUMBER;i++)
{
printf("Enter %d message:",i+1);
scanf("%s%lf",s[i].name,&s[i].price);
}
for(k=0;k<9;K++)
{
index=k;
for(i=k+1;i<NUMBER;i++)
{
if(s[index].price<s[i].price)
{
index=i;
}
}
temp=s[index];
s[index]=s[k];
s[k]=temp;
}
printf("max1 name:%s price:%d\n",s[0].name,s[0].price);
printf("min1 name:%s price:%d\n",s[9].name,s[9].price);
return 0;
}
编译报错为:
c:\documents and settings\administrator\桌面\rtyu.c(17) : error C2065: 'K' : undeclared identifier
c:\documents and settings\administrator\桌面\rtyu.c(27) : error C2115: '=' : incompatible types
c:\documents and settings\administrator\桌面\rtyu.c(29) : error C2115: '=' : incompatible types
确实不知道那里出错了,请指教
展开
 我来答
好嘞啊啊啊啊
2013-09-07 · TA获得超过2612个赞
知道大有可为答主
回答量:1860
采纳率:66%
帮助的人:1176万
展开全部
#include<stdio.h>
#define NUMBER 10
struct book{
  char name;
  double price;
};
int main(void)
{
 int i,index,k;double temp;// k前面的是中文逗号 temp要定义成double类型
 struct book s[NUMBER];
 for(i=0;i<NUMBER;i++)
 {
  printf("Enter %d message:",i+1);
  scanf("%s%lf",s[i].name,&s[i].price);
 }
 for(k=0;k<9;k++) // 最后一个k 大写了
 {
  index=k;
  for(i=k+1;i<NUMBER;i++)
  {
   if(s[index].price<s[i].price)
   {
    index=i;
   }
  }
  temp=s[index].price;  //缺了price 
  s[index].price=s[k].price; 
  s[k].price=temp;
 }
 printf("max1  name:%s     price:%d\n",s[0].name,s[0].price);
 printf("min1  name:%s     price:%d\n",s[9].name,s[9].price);
 return 0;
}
追问
我将temp定义成struct book temp可以吗?若按照你做的那样,就只改变了price,但是name并没有交换,所以输出的结果没法对应起来啊!
追答
结构体之间只要类型相同可以赋值交换
choris2011
2013-09-07 · TA获得超过173个赞
知道答主
回答量:85
采纳率:0%
帮助的人:45万
展开全部
1: for(k=0;k<9;k++) 这里的k应该是小写的,你大写了。
2:s[]数组中的元素是一个结构体,而temp是int类型,两者不能转化。
追问
那我怎么做才就可以了呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式