[Asm] 纯文本查看 复制代码 //查找书籍:从键盘输人10本书的名称和定价并存人结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。试编写相应程序。
#include<stdio.h>
#define N 10
struct book
{
char name[10];
float price;
}s[10];//此处已定义一个数组结构
int main()
{
int i,max,min;
printf("Please input 10 book name and price:\n");
for(i=0;i<N;i++)
{
printf("(%d):",i+1);
scanf("%s %f",&s[i].name,&s[i].price);
}
min=max=0;
for(i=1;i<N;i++)
{
if(s[i].price>s[max].price)
max=i;
if(s[i].price<s[min].price)
min=i;
}
printf("the max price book :%s %.2f \n",s[max].name,s[max].price);
printf("the min price book :%s %.2f ",s[min].name,s[min].price);
return 0;
} [Asm] 纯文本查看 复制代码 /*通信录排序:建立一个通讯录,通讯录的结构记录包括:姓名 生日 电话号码;期中生日又包括三项:年 月 日。编写程序,定义一个嵌套的结构类型,输入n(n<10)个联系人的信息,
在按他们的的年龄从大到小的顺序依次输出其信息。试编写相应程序。
*/
// 此题的参考答案
#include<stdio.h>
struct student
{
char name[10];
int birthday;//一开始我用char 发现不能比较(⊙o⊙)…
char Tel[30];
};
void studentsort(struct student s[],int t)
{
struct student map;//先再定义一个结构 方便判断语句的双值转换
int i,j;
for(i=1;i<t;i++)// i=1是只需要循环n-1次就可以排列整齐
{
for(j=0;j<t-1;j++)
{
//判断 大的数字年龄越小放在后面
if(s[j].birthday>s[j+1].birthday)
{
map=s[j+1];
s[j+1]=s[j];
s[j]=map;
}
}
}
}
int main()
{
int i,n;
printf("Enter your want to input how much information : ");
scanf("%d",&n);
//定义一个结构
struct student pop[n];
for(i=0;i<n;i++)
{
printf("Please input name birthday Tel ");
scanf("%s %d %s",&pop[i].name,&pop[i].birthday,&pop[i].Tel);
}
studentsort(pop,n);
//打印
for(i=0;i<n;i++)
{
printf("name:%s birthday:%d Tel:%s\n",pop[i].name,pop[i].birthday,pop[i].Tel);
}
return 0;
}
|