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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д