Есть ли простой способ изменить этот код?

#c

#c

Вопрос:

Я учусь программировать чуть меньше 2 недель и создал рабочую программу для оценки. Есть ли ПРОСТОЙ способ изменить этот код от простого приема и воспроизведения введенных оценок до использования пользовательской структуры, позволяющей вводить оценки (0-100) и идентификационные номера для каждого учащегося?

Когда оценки будут распечатаны в конце, я бы хотел, чтобы они были отсортированы по идентификатору.

Вот моя текущая программа:

 #include <stdio.h>
#include <stdlib.h>

#define MAX_GRADE_COUNT 200

int main() {

    int *grade;
    int count = 0;
    int i;
    char continueResponse;

    grade = malloc(sizeof(int) * MAX_GRADE_COUNT);

    if(grade == 0) {
       exit(1);
    }
    printf("Welcome to Gradebooker!nn");

    for(i = 0; i < MAX_GRADE_COUNT; i  ) {
          printf("Enter a grade(0-100): ");
          scanf("%d", grade   i);
          count  ;
          printf("Continue?(Y/N): ");
          scanf(" %c", amp;continueResponse);

          if(continueResponse != 'Y' amp;amp; continueResponse != 'y'){
             printf("n>> End of Grade Input <<nn");
             break;
          }
    }

    printf("Current List of Grades: n");

    for(i = 0; i < count; i  ) {

       printf("t]n", *(grade   i));
    }
    printf("nThank you for using Gradebooker!n");

    free(grade);

    return 0;
}
  

Комментарии:

1. То, что вы ищете, — это общий обзор struct типа данных, который немного слишком широк для Stack Overflow. ИТАК, вопросы обычно связаны с конкретной проблемой в коде (что-то вроде «Почему этот фрагмент кода выдает неожиданный результат»). Где-то вроде reddit.com/r/c_programming возможно, это лучшее место для публикации такого рода общих вопросов.

2. @svangordon Я действительно настолько новичок в этом, что не уверен, как действительно быть более конкретным. Я попробую этот reddit. Спасибо.

3. @zeta Я удалил его из Code Review. Я неплохо изучил пользовательские структуры и способы их реализации, я просто слишком неопытен, чтобы понять, как подключить это к существующей программе. Например, у меня в руках эти 20 Lego, и я знаю, что они делают и почему, но я пока недостаточно хорошо с ними разбираюсь, чтобы создавать что-то еще, кроме неуклюжего мусора. 🙁

4. Похоже, вам нужен наставник. К сожалению, ни Code Review, ни Stack Overflow не обеспечивают наставничества, они предоставляют только обзоры (CR) или ответы (SO). Я предлагаю вам разделить вашу новую функцию («считывать все имена, идентификаторы и оценки и сортировать их в соответствии с x, y, z») на несколько, например, «Написать программу, которая считывает идентификаторы учащихся, имена и оценки, а затем печатает их в том же порядке, в котором они были указаны». Когда вы справитесь с этой задачей, вы можете опубликовать свой результат в Code Review, чтобы получить некоторую обратную связь. В качестве альтернативы вы можете попробовать отсортировать массив. Или: прежде чем строить Lego Minas Tirith, постройте небольшой дом :).

5. @zeta Я построил крепость на дереве. Сейчас я пытаюсь прикрепить к нему табличку «Девушкам вход воспрещен», и мои ногти странные и загадочные. :p