• 结构指针应用例题


     1 /*修改学生成绩,结构指针作为函数参数*/
     2 #include <stdio.h>
     3 struct student
     4 {
     5     int num;
     6     char name[10];
     7     int computer, english, math;
     8     double average;
     9 };
    10 int update_score(struct student *p, int n, int num, int course, int score);
    11 int main(void)
    12 {
    13     int course, i, n, num, pos, score;
    14     struct student students[50];
    15 
    16     printf("Input n:");
    17     scanf("%d", &n);
    18     for (i = 0; i < n; i++)
    19     {
    20         printf("Input the info of No.%d:
    ", i + 1);
    21         printf("number:");
    22         scanf("%d", &students[i].num);
    23         printf("name:");
    24         scanf("%s", students[i].name);
    25         printf("math score:");
    26         scanf("%d", &students[i].math);
    27         printf("english score:");
    28         scanf("%d", &students[i].english);
    29         printf("computer score:");
    30         scanf("%d", &students[i].computer);
    31     }
    32 
    33     printf("Input the number of the students to be updated:");
    34     scanf("%d", &num);
    35     printf("Choice the course:1.math 2.english 3.computer:");
    36     scanf("%d", &course);
    37     printf("Input the new score:");
    38     scanf("%d", &score);
    39 
    40     pos = update_score(students, n, num, course, score);
    41 
    42     if (pos == -1)
    43     {
    44         printf("Not found!
    ");
    45     }
    46     else
    47     {
    48         printf("After update:
    ");
    49         printf("%d	%d	%d	%d
    ", students[pos].num, students[pos].math, students[pos].english, students[pos].computer);
    50     }
    51 
    52     return 0;
    53 }
    54 int update_score(struct student *p, int n, int num, int course, int score)
    55 {
    56     int i, pos;
    57     for (i = 0; i < n; i++, p++)
    58     {
    59         if (p->num == num)
    60         {
    61             break;
    62         }
    63     }
    64     if (i < n)
    65     {
    66         switch (course)
    67         {
    68         case 1:
    69             p->math = score;
    70             break;
    71         case 2:
    72             p->english = score;
    73             break;
    74         case 3:
    75             p->computer = score;
    76             break;
    77         }
    78         pos = i;
    79     }
    80     else
    81     {
    82         pos = -1;
    83     }
    84 
    85     return pos;
    86 }
  • 相关阅读:
    Java实现 LeetCode 416 分割等和子集
    Java实现 LeetCode 416 分割等和子集
    在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
    【详解】嵌入式开发中固件的烧录方式
    嵌入式系统烧写uboot/bootloader/kernel的一般方法
    Linux下USB烧写uImage kernel
    Xmanager连接CentOS的远程桌面
    命令行利器Tmux
    u-boot中分区和内核MTD分区关系
    uboot环境变量与内核MTD分区关系
  • 原文地址:https://www.cnblogs.com/2018jason/p/12204212.html
Copyright © 2020-2023  润新知