明解C语言,练习13-3,从文件中读入个人信息,按身高排序后显示

#include <stdio.h>

#define NUMBER 6
#define F_PATH "D:\\C_C++\\ec13-3\\hw.dat"
typedef struct {
    char name[20];
    int height;
    float weight;
} student;
void swap(student *x,student *y)
{
    student tmp = *x;
    *x = *y;
    *y = tmp;
}
void sort(student data[],int n)
{
    int k = n - 1;
    while( k >= 0) {
        int i,j;
        for(i = 1,j = -1;i <= k;i++)
            if(data[i-1].height > data[i].height){
                j = i -1;
                swap(&data[i],&data[j]);
            }
        k = j;
    }
}
int main(void)
{
    FILE *fp;
    student str[10];
    if ((fp = fopen(F_PATH,"r")) == NULL)
        printf("\aIt is error!\n");
    else {
        for(int i=0;i < NUMBER;i++)
        {
            fscanf(fp,"%s%d%f",str[i].name,&str[i].height,&str[i].weight);
//            while((fscanf(fp,"%s%d%f",str[i].name,&str[i].height,&str[i].weight))==3);
        }
        sort(str,NUMBER);
        puts("-----------------------------------");
        for(int i=0;i < NUMBER;i++) {
            printf("%-8s %6d %6.1f\n",str[i].name,str[i].height,str[i].weight);
        }
        puts("-----------------------------------");
        fclose(fp);
    }
    return (0);
}

明解C语言,练习13-3,从文件中读入个人信息,按身高排序后显示

时间: 2024-10-11 18:23:41

明解C语言,练习13-3,从文件中读入个人信息,按身高排序后显示的相关文章

明解C语言pdf

下载地址:网盘下载 <明解C语言>图文并茂,示例丰富,设有190段代码和164幅图表,对C语言的基础知识进行了彻底剖析,内容涉及数组.函数.指针.文件操作等.对于C语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰.通俗地进行讲解. 柴田望洋(Shibata Bouyou) 1963年出生,日本福冈工业大学信息工程学院副教授.在日本IT界家喻户晓,编写了一些列极富影响力的计算机教材和参考书,如<明解C++>.<明解Java>等,本书于2000年荣获日本工学教育协

《明解c语言》读书笔记

1-3 输入和显示 puts函数只接受 一个 实参,并且在结尾自动换行 2-1运算 求商运算符  :除法运算符" / ",如果是两个整数相除结果为整数如果需要保留小数时 必须将其中一个除数转换为浮点数.5/3=1 3/5=0 6.0/4=1.5   (List01) 求余运算符 int%int 用printf函数打印%时,要避免使用转换功能,必须写成%%,printf(“5%%3=%d\n”,5%3):当使用不具备转换说明功能的puts函数时,写一个%即可. 练习:显示读取整数的最后一

明解C语言 入门篇 第二章答案

练习2-1 1 #include <stdio.h> 2 3 int main() { 4 int x; 5 int y; 6 int percent; 7 8 puts("请输入两个整数"); 9 printf("整数x:"); 10 scanf("%d", &x); 11 printf("整数y:"); 12 scanf("%d", &y); 13 percent = (x

明解C语言 中级篇 第一章答案

练习1-1 #include <stdio.h> #include<stdlib.h> int main() { srand(time(0)); int anw = rand() % 7; printf("您的签运是:"); switch (anw) { case 0:printf("大吉"); break; case 1:printf("吉"); break; case 2:printf("小吉");

明解C语言 入门篇 第七章答案

练习7-1 #include <stdio.h> int main() { int n; printf("%d\t%d\t%d\n", sizeof 1,sizeof(unsigned)-1,sizeof n+2 ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4再减去-1所以显示为3,最后是n+2为6 printf("%d\t%d\t%d\n", sizeof +1, sizeof(double) - 1, sizeof(n

明解C语言 入门篇 第十二章答案

练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的结构体 ===*/ struct student { char name[NAME_LEN]; /* 姓名 */ int height; /* 身高 */ float weight; /* 体重 */ long schols; /* 奖学金 */ }; int main(void) { struct stud

明解C语言 中级篇 第三章答案

练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> int human; /* 玩家的手势 */ int comp; /* 计算机的手势 */ int win_no; /* 胜利次数 */ int lose_no; /* 失败次数 */ int draw_no; /* 平局次数 */ char* hd[] = { "石头", &q

明解C语言 中级篇 第四章答案

练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> /*--- 生成4个不同数字的组合并存入数组x ---*/ void make4digits(int x[]) { int i, j, val; for (i = 0; i < 4; i++) { do { val =

详解 C 语言开发五子棋游戏以及游戏中的重要算法与思路

重拾 C 语言之后发现,原来 C 语言是那么的简洁,对于写小项目来讲,C 语言是那么的合适,然后,博主自己写了一个五子棋游戏,同样是基于博主自己封装的 nkCEngine 代码库编写,其实整个游戏里面大部分代码都用在逻辑处理上了,图形处理以及窗口创建的部分,因为有高度封装的 nkCEngine,基本上可以忽略不计,这篇博文来讲一讲 C 语言开发一个简单的五子棋游戏,这个游戏不包含人机对战的逻辑,所以唯一的难点估计就是在于如何判断下棋的一方在下棋时候是否获胜了,同时博主也会介绍一个游戏开发中最经常