//编写一个程序,利用结构体实现按学生姓名查询其排名和平均成绩。查询可连续进行,直到键入0时结束。
#include "stdio.h"
struct cjb
{
char name[10];
int pai;
float score;
};
void main()
{
struct cjb a={"aa",1,5};
struct cjb b={"bb",2,4};
struct cjb c={"cc",3,3};
struct cjb d;
int i,j=1;
printf("按姓名查询您其排名和平均成绩,直到键入0时结束。");
for(i=1;i<4&&j!=0;i++)
{
printf("请输入您的姓名:\n");
scanf("%s",d.name);
if(d.name==a.name)
printf("排名为:%d和平均成绩为%.1f:\n",a.pai,a.score);
else if (d.name==b.name)
printf("排名为:%d和平均成绩为%.1f:\n",b.pai,b.score);
else
printf("排名为:%d和平均成绩为%.1f:\n",c.pai,c.score);
break;
}
printf("是否继续查询?1继续,0时结束\n");
scanf("%d",&j);
printf("\n");
}
//设有三人的姓名和年龄存在结构体数组中,输出三人中年龄居中者的姓名和年龄。
#include "stdio.h"
struct cj
{
char name[10];
int age;
};
void main()
{
struct cj a={"aa",10};
struct cj b={"bb",5};
struct cj c={"cc",1};
if((a.age>b.age&&a.age<c.age)||(a.age<b.age&&a.age>c.age))
{ printf("%d",a.age);
}
else((b.age>a.age && b.age<c.age)||(b.age<a.age&&b.age>c.age))
{ printf("%d",b.age);
}
else((c.age>a.age && c.age<b.age)||(c.age<b.age&&c.age>a.age))
{ printf("%d",c.age);
}
}
----------------解决方案--------------------------------------------------------
晕~我懒~不想看那么长~你告诉你,是编译不过,还是得不到预先的结果?
可以明确的告诉你,你这程序怎么也遍不过!怎么会有两个main()函数?
[此贴子已经被作者于2007-4-24 12:20:22编辑过]
----------------解决方案--------------------------------------------------------
/***********************************************************************************************/
/*编写一个程序,利用结构体实现按学生姓名查询其排名和平均成绩。查询可连续进行,直到键入0时结束。*/
/***********************************************************************************************/
/********Author: gufei1122 mender: laigaoat2005 Data:2007-4-23*****************************/
/***********************************************************************************************/
/******比较两字符串是否相同 不是用 == ,而是用strcmp(ch1,ch2)函数*******************************/
/***********************************************************************************************/
#include "stdio.h"
struct cjb
{
char name[10];
int pai;
float score;
};
void main()
{
struct cjb a={"aa",1,5};
struct cjb b={"bb",2,4};
struct cjb c={"cc",3,3};
struct cjb d;
int i,j=1;
printf("按姓名查询您其排名和平均成绩,直到键入0时结束。");
while(j)
{
printf("请输入您的姓名:\n");
scanf("%s",d.name);
printf("d.name = %s\n",d.name);
printf("a.name = %s\n",a.name);
if(strcmp(d.name,a.name)==0) /* 比较两字符串是否相同 */
printf("排名为:%d和平均成绩为%.1f:\n",a.pai,a.score);
else if(strcmp(d.name,b.name)==0)
printf("排名为:%d和平均成绩为%.1f:\n",b.pai,b.score);
else if(strcmp(d.name,c.name)==0)
printf("排名为:%d和平均成绩为%.1f:\n",c.pai,c.score);
else
{
printf("查无此人!\n");
}
printf("是否继续查询?1继续,0时结束\n");
scanf("%d",&j);
printf("\n");
}
}
----------------解决方案--------------------------------------------------------
楼主你的贴子应该是两个程序吧?
上面为第一个
第二个我正在看.
我也初学,也请大家帮忙看看,有什么不对的啊.
----------------解决方案--------------------------------------------------------
/*********第二个也改了:*********/
***********************************************************************************************/
/******编写一个程序,设有三人的姓名和年龄存在结构体数组中,输出三人中年龄居中者的姓名和年龄。***/
/***********************************************************************************************/
/********Author: gufei1122 mender: laigaoat2005 Data:2007-4-23*****************************/
/***********************************************************************************************/
#include "stdio.h"
struct cj
{
char name[10];
int age;
};
void main()
{
struct cj a={"aa",10};
struct cj b={"bb",5};
struct cj c={"cc",1};
if((a.age>b.age&&a.age<c.age)||(a.age<b.age&&a.age>c.age))
{
printf("年龄居中的那个人的姓名是:%s\n年龄是:%d\n\a\t",a.name,a.age);
}
else if((b.age>a.age && b.age<c.age)||(b.age<a.age&&b.age>c.age))
{
printf("年龄居中的那个人的姓名是:%s\n年龄是:%d\n\a\t",b.name,b.age);
}
else
{
printf("年龄居中的那个人的姓名是:%s\n年龄是:%d\n\a\t",b.name,c.age);
}
}
----------------解决方案--------------------------------------------------------
非常感谢
----------------解决方案--------------------------------------------------------
改的不错啊~!
----------------解决方案--------------------------------------------------------