| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:[求助]结构指针问题
只看楼主 加入收藏
snipered
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2007-10-5
收藏
 问题点数:0 回复次数:1 
[求助]结构指针问题

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int numble=0; //卖房人数
float money=0; //卖房总额
struct maifang
{
char name[10]; //卖房人姓名
float score; //卖房收入
}stu[50];
struct maifang input()
{
struct maifang stu;
getchar();
printf("\n卖房人姓名:");
scanf("%s",stu.name);
printf("\n卖房收入:");
scanf("%f",&stu.score);
numble++;
money+=stu.score;
return stu;
}
void display(struct maifang stud[],int count);
void display(struct maifang stud[],int count)
{
system("cls");
printf("\n%s\t","卖房人姓名");
printf("\t%s","卖房收入");
printf("\n");
for(int i=0;i<count;i++)
{
printf("\t%s\t",stud[i].name);
printf("\t%.2f",stud[i].score);
printf("\n");
}
printf("\n按任意键返回主菜单:");
getch();
}
void sort(struct maifang stud[],int count); //就是从这里开始错的
void sort(struct maifang stud[],int count)
system("cls");
struct maifang *p[50];
struct maifang *tmp;
int i,j,k,l;
for(i=0;i<count;i++)
{
p[i]=&stu[i];
}
for(i=0;i<count-1;i++)
{
for(j=count-1;j>i;j--)
{

if(stud[j].score<stud[j].score)
{
tmp=p[j];
p[j]=p[j-1];
p[j-1]=tmp;
}
}
}
printf("\n%s\t","卖房人姓名");
printf("\t%s","卖房收入");
printf("\n");
for(k=0;k<count;k++)
{
printf("\t%s\t",*p[k].name);
printf("\t%.2f",*p[k].score);
printf("\n");
}

printf("\n排序已完成,按任意键返回主菜单:");
getch();
}

int find(struct maifang stud[],int count,char mizi[]);
int find(struct maifang stud[],int count,char mizi[])
{
int i,j;
for(i=0;i<count;i++)
{
j=strcmp(stud[i].name,mizi);
if(j==0)
return i;
}
return -1;
}
void query(struct maifang stud[],int count);
void query(struct maifang stud[],int count)
{
int i;
char dno[10];
system("cls");
printf("\n请输入卖房人的姓名:");
scanf(" %s",dno);
i=find(stud,count,dno);
if(i==-1)
{
printf("\n您所要查询的人不存在!按任意键返回主菜单:");
getch();
return;
}
printf("\n%s\t","卖房人姓名");
printf("%s","卖房收入");
printf("\n%s\t",stud[i].name);
printf("\t%.2f\n",stud[i].score);
printf("\n按任意键返回主菜单:");
getch();
}
void sc();
void sc()
{
system("cls");
printf("卖房总人数:%d\n",numble);
printf("卖房总金额:%.2f\n",money);
printf("\n按任意键返回主菜单:");
printf(" ");
getch();
}
void main()
{

int count=0;
char sel='1',flag;
while(sel!='6')
{
system("cls");

printf("-------------二手房交易信息管理-------------\n\n");
printf("1.卖房信息录入\n2.显示卖房信息\n3.按卖房收入排序\n4.按卖房人姓名查询\n5.统计总收入\n6.退出\n");
printf("\n请选择:");
sel=getchar();
switch(sel)
{
case '1':
system("cls");
do
{
stu[count]=input();
count++;
printf("\n是否继续(y/n):");
fflush(stdin);
flag=getchar();
}while(flag=='y'||flag=='Y');
break;
case '2':
display(stu,count);
break;
case '3':
sort(stu,count);
break;
case '4':
query(stu,count);
break;
case '5':
sc();
break;

}
}
}

问一下我那里错了??

1. 使用指针数组对结构体数组进行排序,声明指针数组并与结构数组关联:

struct sell_record *p[50];

for(i=0;i<count;i++) { p[i] = &sells[i]; }

用于交换的变量也是指针:

struct sell_record *tmp;

交换时是交换指针而不影响结构数组的原始顺序:

tmp = p[j] ; p[j] =p[j-1] ; p[j-1] = tmp ;
这是是要求!

搜索更多相关主题的帖子: include return money 姓名 
2007-11-02 17:57
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
void sort(struct maifang stud[],int count)

这个函数的左花括号呢?

其实你这些函数写在main前面,没必要再声明了,
而且即使要声明,也要放到程序的最开头,
这样贴近函数的定义来放,好像没啥作用。

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-02 19:02
快速回复:[求助]结构指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017518 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved