C语言编程题(指针)

假定每本书包含下列信息:书面、作者、售价。编写一个函数outbook,输出图书信息,编写一个函数inbook,输入图书信息,在主函数中用inbook函数输入5本书的信息,然后用outbook函数输出这些信息。

第1个回答  2011-08-24
#include <stdio.h>

typedef struct {
char book_name[64]; /* 书名 */
char book_author[64]; /* 作者 */
float book_price; /* 价格 */
}book;

void inbook(book *info);
void outbook(book *info);

void inbook(book *info)
{ if(!info)
{ printf("Error! NULL pointer.\n");
return;
}

printf("input format: name author price:\n");
scanf("%s %s %f", &info->book_name, &info->book_author, &info->book_price);
}

void outbook(book *info)
{ if(!info)
{ printf("Error! NULL pointer.\n");
return;
}

printf("name: %s \n", info->book_name );
printf("author: %s \n", info->book_author );
printf("price: %f \n", info->book_price);
printf("------------------\n");
}

#define BOOK_NUM 5 /* 5 books*/

int main(int argc, char* argv[])
{ book books[BOOK_NUM];
int i;
for (i=0; i<BOOK_NUM; i++)
{
inbook(&books[i]);
}

printf("All books recorded. Now print all books info:\n");

for (i=0; i<BOOK_NUM; i++)
{
outbook(&books[i]);
}

return 0;
}
第2个回答  2011-08-24
typedef struct
{
char book[20];
char name[20];
float price;
}BOOK;

int outbook(BOOK *b)
{
if(b == NULL) //判断是否存在这本书
return 0;
printf("book = %s\n",b->book);
printf("name = %s\n",b->name);
printf("price = %f\n",b->price);
return 1;
}
int inbook(BOOK *b)
{
if(b == NULL)
return 0;
gets(p->book);
gets(p->name);
scanf("%f",&b->price);
return 1;
}

int main()
{
BOOK b[5];
int i,j;
for(i=0;i<5;i++)
{
inbook(&b[i]);
}
for(j=0;j<5;j++)
{
outbook(&b[j]);
}
return 0;
}本回答被网友采纳
第3个回答  2011-08-25
#include<stdio.h>
void insert(char *s1,char *s2,int f)
{
int i,j;
char t;
for(i=f,j=0;s2[j];i++,j++)
{
t=s1[i];
s1[i]=s2[j];
s2[j]=t;
}
for(j=0;s2[j];j++,i++)
s1[i]=s2[j];
s1[i]='\0';
}
int main(void)
{
char s1[81]="abcdefgh",s2[]="kkkkkkkk";
insert(s1,s2,3);
printf("%s\n",s1);
return 0;
}