Разместить в массиве NR номера тех студентов, чей рост меньше 180 см - C (СИ)
Формулировка задачи:
. Проведено измерение роста 70 студентов. Данные записаны в массиве ROST. Разместить в массиве NR номера тех студентов, чей рост меньше 180 см, и подсчитать число таких студентов.
в целом работает правильно,только номера студентов выдает не все (один выдает адресом)
#include <stdio.h> #include <math.h> #include <conio.h> #include<stdlib.h> #define N 11 void main() { int *ROST,i,*NR,nr=1,kol=0; ROST=(int*)malloc(N*sizeof(int)); for(i=0;i<N;i++) ROST[i]=rand()%180+130; printf("ROST STUDENTOV"); for(i=0;i<N;i++) printf("%4d",ROST[i]); puts("\n"); for(i=0 ; i<N; i++) { if(ROST[i]<180) kol++; } printf(" Kolichestvo studentov c rostom < 180 = %d",kol); puts("\n"); NR=(int*)malloc(kol*sizeof(int)); for(i=0;i<N;i++) if(ROST[i]<180) { NR[nr]=i; nr++; } printf("Nomera studentov s rostom < 180 "); puts("\n"); for(nr=0;nr<kol;nr++) printf("%4d", NR[nr]); puts("\n"); getch(); }
Решение задачи: «Разместить в массиве NR номера тех студентов, чей рост меньше 180 см»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> int main() { SetConsoleCP(1251); system("chcp 1251"); int *GROWTH, *KID, M, i=0,kol=0, nom=0; srand(time(NULL)); M=rand()%100; GROWTH= (int*) malloc(M*sizeof(int)); for (i=0;i<M;i++) { GROWTH[i]=rand()%150+100; } printf("Количество новобранцев"); for (i=0; i<M; i++) { printf("%d\n",GROWTH[i]); if(GROWTH[i]<180) kol ++; } printf("Колличество новобранцев ниже 180 = %d", kol); KID=(int*)malloc(kol*sizeof(int)); for (i=0;i<M;i++) if (GROWTH[i]<180) { KID[nom]=i; nom++; } printf("\nНомера новобранцев ниже 180: \t"); for (nom=0;nom<kol;nom++) printf("%d\t",KID[nom]); getchar(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы.
- Устанавливается кодировка консоли.
- Задаются начальные значения переменных: — M = 100 (количество новобранцев). — i = 0 (счетчик для циклов). — kol = 0 (количество новобранцев с ростом меньше 180 см). — nom = 0 (номер новобранца, с которым работает программа).
- Инициализируется генератор случайных чисел.
- В массив GROWTH (рост новобранцев) записываются случайные числа от 100 до 150.
- Выводится сообщение
Количество новобранцев
и выводится список ростовок новобранцев. - Увеличивается счетчик kol на единицу для каждого новобранца с ростом меньше 180 см.
- Выводится сообщение
Колличество новобранцев ниже 180 = %d
, kol (количество новобранцев с ростом меньше 180 см). - Инициализируется массив KID (номера новобранцев с ростом меньше 180 см).
- В цикле перебираются ростовок новобранцев.
- Если рост меньше 180 см, то к массиву KID добавляется номер новобранца и увеличивается счетчик nom на единицу.
- Выводится список номеров новобранцев с ростом меньше 180 см.
- Программа ожидает нажатия клавиши.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д