Assignment to expression with array type - C (СИ)
Формулировка задачи:
Что я делаю не так подскажите.
#include <conio.h> #include <stdio.h> #include <string.h> #include <stdlib.h> /*1) створіть структуру Club з полями: name - назва клубу; city - місто, яке він представляє; * score - кількість набраних очок;*/ struct Club { char cCity[255]; char cName[255]; char cScore[255]; }; int main(void) { struct Club sClub; signed int i; for ( i = 0; i < 255; i++ ) { sClub.cCity[i] = 0; sClub.cName[i] = 0; sClub.cScore[i] = 0; } /* 2) створіть файл, в якій внесіть дані - майбутні значення полів структури Club * (кожне поле - з нового рядка, без пробілів!), кількість клубів - не менше 10 * (розташувати у файлі в довільному порядку, не залежно від кількості очок);*/ FILE *pClub; pClub = fopen ( "FileAllClubs.txt", "a+" ); //3) збережіть створений файл як текстовий; printf ( "Input name city: " ); gets ( sClub.cCity ); printf ( "Input name club: " ); gets ( sClub.cName ); printf ( "Input score club: " ); gets ( sClub.cScore ); fprintf ( pClub, "%s\n%s\n%s\n", &sClub.cCity[0], &sClub.cName[0], &sClub.cScore[0] ); fclose ( pClub ); for ( i = 0; i < 255; i++ ) { sClub.cCity[i] = 0; sClub.cName[i] = 0; sClub.cScore[i] = 0; } /*4) введіть з клавіатури число N - кількість клубів, дані про які потрібно прочитати з файлу;*/ signed int N = 0; printf ( "Input N: " ); scanf ( "%d", &N ); pClub = fopen ( "FileAllClubs.txt", "r+" ); for ( i = 0; i < N; i++) { fgets ( sClub.cCity, 255, pClub ); fgets ( sClub.cName, 255, pClub ); fgets ( sClub.cScore, 255, pClub ); puts ( sClub.cCity ); puts ( sClub.cName ); puts ( sClub.cScore ); } fclose ( pClub ); struct Club *aArrayClub = ( struct Club* ) malloc ( N * sizeof ( struct Club ) ); //5) виділіть динамічно пам’ять для масиву з n структур; if ( ( aArrayClub = ( struct Club* ) malloc ( N * sizeof ( struct Club ) ) ) == NULL ) { printf ( "ERROR\n" ); exit ( 1 ); } for( i = 0; i < N; i++) //6) прочитайте у відповідний масив максимально можливу кількість даних про клуби; { aArrayClub[i].cCity = sClub.cCity; aArrayClub[i].cName = sClub.cName; aArrayClub[i].cScore = sClub.cScore; } /*7) здійснить сортування даного масиву за спаданням кількості очок клубів - першим елементом щоб стала структура, клуб якої має максимальну кількість очок, і далі - в порядку зменшення;Примітка: - з метою обміну структур місцями оголосіть додаткову аналогічну структуру, в яку тимчасово будете копіювати ті, що підлягають перестановці; доступ до елементів масиву структур здійснюйте за допомогою покажчиків!*/ //8) дані відсортованого масиву виведіть до іншого текстового файлу (по можливості використовуючи форматування для кращої читабельності); перевірте файл на предмет правильного порядку розташування в ньому даних про клуби. return 0; }
Решение задачи: «Assignment to expression with array type»
textual
Листинг программы
aArrayClub[i].cCity = sClub.cCity; aArrayClub[i].cName = sClub.cName; aArrayClub[i].cScore = sClub.cScore;
Объяснение кода листинга программы
- В данном коде происходит присваивание значений переменным типа массив с использованием индекса
i
. aArrayClub
- название массива, в который производятся присваивания.i
- индекс, используемый для обращения к элементам массиваaArrayClub
.sClub
- название структуры, значения которой присваиваются элементам массиваaArrayClub
.cCity
- название поля структурыsClub
, значение которого присваивается соответствующему элементу массиваaArrayClub
.cName
- название поля структурыsClub
, значение которого присваивается соответствующему элементу массиваaArrayClub
.cScore
- название поля структурыsClub
, значение которого присваивается соответствующему элементу массиваaArrayClub
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д