C语言结构体与链表问题【急】【急】【急】【急】【急】【急】【急】【急】【急】【急】【急】

2.找出以下程序的错误并改正。#include<stdio.h>#include<string.h>intmain(){structstudent{intnum;char... 2. 找出以下程序的错误并改正。
#include<stdio.h>
#include<string.h>
int main( )
{
struct student
{ int num;
char name[ ];
float score;
}; stu, *p;
p=stu;
stu.num=1001;
(*p).name=”Mary”;
scanf(“%f”, p->score);
printf(“%6d%10s%1.2f\n”, p.num, p->name, p->score);
return 0;
}
3. 有10本图书,每本图书的信息包括书号、书名、作者、价格,编写函数完成以下功能:
(1) 从键盘输入数据,将其存放在结构体数组中;
(2) 输入书名,在数组中查找是否存在此书,有此书则输出此书的信息,无此书则输出提示信息;
(3) 输入一个价格,将高于此价格的图书信息输出。
展开
 我来答
2010liuzuo
2012-05-08 · TA获得超过580个赞
知道小有建树答主
回答量:212
采纳率:75%
帮助的人:43.5万
展开全部
首先回答第一个问题,程序当中存在以下这几个问题:
(1) char name[ ]中的数组name没有指定大小,此处可以定义为name[20]
(2) p = stu也有错误,应该将结构体的首地址赋给指针p,从而使p指向该结构体。正确的写法是:
p = &stu;
(3) (*p).name = "Mary"也有错误,此处不能这么赋值。正确的写法是:strcpy(p->name, "Mary")
(4) scanf("%f", p->score)也有错误,此处p->score前面应加上取地址符&,正确写法是:
scanf("%f", &p->score)
将以上四个地方改完以后,就没有什么错误了!完整的程序是:
#include<stdio.h>
#include<string.h>
int main( )
{
struct student
{ int num;
char name[20];
float score;
} stu, *p;
p = &stu;
stu.num = 1001;
strcpy(p->name, ”Mary”);
scanf(“%f”, &p->score);
printf(“%6d%10s%6.2f\n”, p.num, p->name, p->score);
return 0;
}
追问
这下看明白了。。第二个问题还要请你帮忙了
追答
关于第二个问题,在第二小问上出了一点小问题,其他两个我已经帮你解决了:
#include
#include
struct book {
int num; //书号
char name[20]; //书名
char author[20]; //作者
float price; //书的价格
};
//定义一个有10个元素的结构体数组,并将其初始化为0
struct book book[10] = {0};
//此函数的作用是: 输入一个价格,将高于此价格的图书信息输出
void book_price(float price)
{
int i;
for (i = 0; i price)
{
printf("%d %s %s %4.2f\n", book[i].num, book[i].name, book[i].author, book[i].price);
break;
}
}
}
//在主函数中实现:从键盘输入数据,将其存放在结构体数组中
int main(void)
{
int i;
printf("书号 书名 作者 价格\n");
for (i = 0; i < 10; i++)
{
scanf("%d%s%s%f", &book[i].num, &book[i].name, &book[i].author, &book[i].price);
}
float b_price;
printf("请输入你指定的书的价格: ");
scanf("%f", &b_price);
printf("----------------------------\n");
book_price(b_price);
printf("----------------------------\n");
return 0;
}
注:除了第二问以外,其他两问的实现一点问题没有!
zsx10110
2012-05-08 · TA获得超过8871个赞
知道大有可为答主
回答量:2369
采纳率:66%
帮助的人:3048万
展开全部
#include<stdio.h>
#include<string.h>
int main( )
{
struct student
{ int num;
char name[20];
float score;
}stu, *p;
*p=stu;
stu.num=1001;
strcpy(p->name,"Mary");
scanf("%f", &p->score);
printf("%6d%10s%1.2f\n", p->num, p->name, p->score);
return 0;
}
更多追问追答
追问
运行出错啊,用的VS2008
追答
是不是strcpy错误了 没办法 我用的不是VS帮不了你了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旷飞白002
2012-05-08 · TA获得超过613个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:247万
展开全部
2、
#include<stdio.h>
#include<string.h>
int main(int argc, char* argv[])
{

struct student
{ int num;
char name[20];
float score;
}stu, *p;
p=&stu;
stu.num=1001;
strcpy(p->name,"Mary");
scanf("%f", &p->score);
printf("%6d%10s%1.2f\n", p->num, p->name, p->score);
return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
asd5578789
2012-05-08
知道答主
回答量:1
采纳率:0%
帮助的人:1607
展开全部
目前我还没有学会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式