zoukankan      html  css  js  c++  java
  • 保研练习题(5)

    流程练习题,基本不涉及什么算法。

    要求:
    学生有(学号,姓名,性别,年龄),初始化三个学生的信息
    (10,wes,f,23)(20,ert,f,45)(30,str,t,89),然后对学生信息进行插入和删除处理
    例如
    I12,rt,f,67表示插入12,rt,f,67
    D10 表示删除学号为10的学生的信息
    每次操作完成以后输出所有学生的信息按学号从小到大排序


    输入:
    I12,rt,f,67
    输出
    (10,wes,f,23) (12,rt,f,67) (20,ert,f,45) (30,str,t,89)
    输入:
    D10 
    输出
    (12,rt,f,67) (20,ert,f,45) (30,str,t,89)

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 
     5 // 学生信息
     6 struct student
     7 {
     8     int num;
     9     char name[30];
    10     char sex;
    11     int age;
    12 };
    13 
    14 int main()
    15 {
    16     struct student t;
    17     struct student stu[50];
    18     char cmd,sex,name[30];
    19     int num,age,i,j,k;
    20 
    21     // 初始化
    22     stu[0].num = 10;
    23     strcpy(stu[0].name,"wes");
    24     stu[0].sex = 'f';
    25     stu[0].age = 23;
    26 
    27     stu[1].num = 20;
    28     strcpy(stu[1].name,"ert");
    29     stu[1].sex = 'f';
    30     stu[1].age = 45;
    31 
    32     stu[2].num = 30;
    33     strcpy(stu[2].name,"str");
    34     stu[2].sex = 't';
    35     stu[2].age = 89;
    36 
    37     // 输入
    38     for (i=2; ;){
    39         scanf("%c",&cmd);
    40         if (cmd == 'I'){    // 插入
    41             i += 1;
    42             scanf("%d,%[^,]%*c%c,%d",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].age);
    43             // 排序 共i+1个
    44             for (j=0; j<i; j++){
    45                 for (k=0; k<i-j; k++){
    46                     if (stu[k].num > stu[k+1].num){
    47                         t = stu[k];
    48                         stu[k] = stu[k+1];
    49                         stu[k+1] = t;
    50                     }
    51                 }
    52             }
    53             // 输出结果
    54             for (j=0; j<=i; j++){
    55                 printf("(%d,%s,%c,%d) ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age);
    56             }
    57             printf("
    ");
    58         }
    59         else if (cmd == 'D'){    // 删除
    60             scanf("%d",&num);
    61             for (j=0; j<=i; j++){    // 定位到要删除的节点
    62                 if (stu[j].num == num){
    63                     break;
    64                 }
    65             }
    66             for (k=j; k<i; k++){    // 删除节点 把以后的都向前移一个
    67                 stu[k] = stu[k+1];
    68             }
    69             i -= 1;        // 删除后节点数减一
    70             // 输出结果
    71             for (j=0; j<=i; j++){
    72                 printf("(%d,%s,%c,%d) ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age);
    73             }
    74             printf("
    ");
    75         }
    76     }
    77     return 0;
    78 }

  • 相关阅读:
    [Java]关于throw,throws,try{}catch(){} 悟寰轩
    jmx使用jmxmp协议连接器的实现 悟寰轩
    ActionContextCleanUp作用 悟寰轩
    空心验证码(定制) 悟寰轩
    struts升级:FileUploadInterceptor在struts 2.3.14.2的jar中修改了方法acceptFile中的参数 悟寰轩
    网络里的“逆世界” 悟寰轩
    离开时自动提示设为首页
    文本与图像上传到数据库
    在Delphi用vbscript的正则表达式
    ASP中输入特殊字符
  • 原文地址:https://www.cnblogs.com/raul-ac/p/3324557.html
Copyright © 2011-2022 走看看