Записать данные из массивов 5 почти одинаковых структур в один двухмерный массив - C (СИ)
Формулировка задачи:
Пытаюсь записать данные из массивов 5 почти что одинаковых структур в один двухмерный массив,но при компиляции выдаёт ошибку error C2108: subscript is not of integral type
вот часть кодa:
#include <stdio.h> #include <time.h> #include <stdlib.h> struct POPULATION { int alleles[4]; int fitness; float likelihood; }; int main() { int i = 0; struct POPULATION *first = (struct POPULATION*)malloc(sizeof(struct POPULATION)); struct POPULATION *second = (struct POPULATION*)malloc(sizeof(struct POPULATION)); struct POPULATION *third = (struct POPULATION*)malloc(sizeof(struct POPULATION)); struct POPULATION *fourth = (struct POPULATION*)malloc(sizeof(struct POPULATION)); struct POPULATION *fifth = (struct POPULATION*)malloc(sizeof(struct POPULATION)); for(i = 0;i < 4;i++) first->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) second->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) third->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) fourth->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) fifth->alleles[i] = rand()%30 + 1; int pop[5][4]; for(i = 0;i < 4;i++) pop[0][i] = first->alleles[i]; for(i = 0;i < 4;i++) pop[1][i] = second->alleles[i]; for(i = 0;i < 4;i++) pop[2][i] = third->alleles[i]; for(i = 0;i < 4;i++) pop[3][i] = fourth->alleles[i]; for(i = 0;i < 4;i++) pop[4][i] = fifth->alleles[i]; for(int s=0;s<5;s++) { for(i=0;i<4;i++) { printf("%d",pop[s][i]); } printf("\n"); } return 0; }
Решение задачи: «Записать данные из массивов 5 почти одинаковых структур в один двухмерный массив»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include <stdlib.h> struct POPULATION { int alleles[4]; int fitness; float likelihood; }; int main() { int i, s, pop[5][4]; struct POPULATION *first, *second, *third, *fourth, *fifth; first = malloc(sizeof(struct POPULATION)); second = malloc(sizeof(struct POPULATION)); third = malloc(sizeof(struct POPULATION)); fourth = malloc(sizeof(struct POPULATION)); fifth = malloc(sizeof(struct POPULATION)); for(i = 0;i < 4;i++) first->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) second->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) third->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) fourth->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) fifth->alleles[i] = rand()%30 + 1; for(i = 0;i < 4;i++) pop[0][i] = first->alleles[i]; for(i = 0;i < 4;i++) pop[1][i] = second->alleles[i]; for(i = 0;i < 4;i++) pop[2][i] = third->alleles[i]; for(i = 0;i < 4;i++) pop[3][i] = fourth->alleles[i]; for(i = 0;i < 4;i++) pop[4][i] = fifth->alleles[i]; for(s=0;s<5;s++) { for(i=0;i<4;i++) { printf("%d",pop[s][i]); } printf("\n"); } return 0; }
Объяснение кода листинга программы
В этом коде объявлены пять почти одинаковых структур, каждая из которых содержит массив из четырех элементов и три переменные. Массив заполняется случайными числами от 1 до 30. Затем элементы массива записываются в двумерный массив. Наконец, элементы двумерного массива выводятся на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д