Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2022, 23:27   #1
Nikita234
Пользователь
 
Регистрация: 23.11.2021
Сообщений: 12
По умолчанию Помощь с си - компилятор не воспринимает ->

Добрый вечер , помогите пожалуйста ка по другому можно записать эти строчки
Код:
game->board[row][col] = tile;
game->score += pow(2, (int)((int)letter - 'A' + 1));
game->board[swapArray[0]][swapArray[1]] += 1;
ибо компилятор не воспринимает -> , а как записать по другому не знаю
Заранее спасибо.

вот такую ошибку выдает
Код:
/tmp/tester/data/tests/student/k.c: In function 'add_random_tile':
/tmp/tester/data/tests/student/k.c:16:29: error: conversion from 'int' to 'char' may change value [-Werror=conversion]
   16 |     game->board[row][col] = tile;
      |                             ^~~~
/tmp/tester/data/tests/student/k.c: In function 'update_score':
/tmp/tester/data/tests/student/k.c:72:20: error: conversion from 'double' to 'int' may change value [-Werror=float-conversion]
   72 |     game->score += pow(2, (int)((int)letter - 'A' + 1));
      |                    ^~~
/tmp/tester/data/tests/student/k.c: In function 'replace_matrix':
/tmp/tester/data/tests/student/k.c:103:60: error: conversion from 'int' to 'char' may change value [-Werror=conversion]
  103 |                 game->board[swapArray[0]][swapArray[1]] += 1;
      |                                                            ^
cc1: all warnings being treated as errors
make[3]: *** [tests/CMakeFiles/student.dir/build.make:63: tests/CMakeFiles/student.dir/student/k.c.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:204: tests/CMakeFiles/student.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:211: tests/CMakeFiles/student.dir/rule] Error 2
make: *** [Makefile:168: student] Error 2

Последний раз редактировалось BDA; 14.03.2022 в 02:22.
Nikita234 вне форума Ответить с цитированием
Старый 14.03.2022, 00:28   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Код:
game->score += pow(2, (int)((int)letter - 'A' + 1));
А что делается в этой строке?
(int)letter - символ конвертируем в целое
(int)letter - 'A' - из целого вычитаем символьное значение
(int)((int)letter - 'A' + 1) - к непонятно чему прибавляем 1 и преобразуем к целому.

Тут ведь написано:
error: conversion from 'int' to 'char' may change value [-Werror=conversion]

Не знаю точно, но вероятно можно писать так:
pow(2, (int)(letter - 'A' + 1))
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 14.03.2022, 00:34   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Nikita234, у вас не с оператором -> проблемы, а с отсутствием явного приведения типов.
ViktorR, в строке с pow "conversion from 'double' to 'int'", так как результат функции pow типа double. Учитывая, что нужна степень двойки, именно эту строку бы заменил на:
Код:
game->score += 1 << ((int)letter - (int)'A' + 1);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.03.2022, 00:41   #4
Nikita234
Пользователь
 
Регистрация: 23.11.2021
Сообщений: 12
По умолчанию

BDA, Спасибо большое , сейчас проверю
Nikita234 вне форума Ответить с цитированием
Старый 14.03.2022, 02:08   #5
Nikita234
Пользователь
 
Регистрация: 23.11.2021
Сообщений: 12
По умолчанию

BDA, сработало , случайно не знаете как еще две записать чтобы не выдавало ошибки , заранее спасибо!
Nikita234 вне форума Ответить с цитированием
Старый 14.03.2022, 02:21   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Попробуйте так:
Код:
game->board[row][col] = (char)tile;
game->board[swapArray[0]][swapArray[1]]++;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.03.2022, 13:29   #7
Nikita234
Пользователь
 
Регистрация: 23.11.2021
Сообщений: 12
По умолчанию

BDA, Спасибо большое, компилятор не выдает ошибок
Nikita234 вне форума Ответить с цитированием
Старый 14.03.2022, 16:10   #8
Nikita234
Пользователь
 
Регистрация: 23.11.2021
Сообщений: 12
По умолчанию

BDA, это сработало но теперь появились другие ошибки , был бы очень благодарен за помощь .

/tmp/tester/data/tests/student/hof.c: In function 'add_player':
/tmp/tester/data/tests/student/hof.c:80:49: error: conversion to 'long unsigned int' from 'int' may change the sign of the result [-Werror=sign-conversion]
80 | char **new_name = ((char**)malloc((*size+1) * sizeof(char*)));
................................... ................................... .^
/tmp/tester/data/tests/student/hof.c:81:40: error: conversion to 'long unsigned int' from 'int' may change the sign of the result [-Werror=sign-conversion]
81 | int* new_score = (malloc((*size+1) * sizeof(int)));
................................... .....................^
cc1: all warnings being treated as errors
make[3]: *** [tests/CMakeFiles/student.dir/build.make:76: tests/CMakeFiles/student.dir/student/hof.c.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:204: tests/CMakeFiles/student.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:211: tests/CMakeFiles/student.dir/rule] Error 2

Последний раз редактировалось Nikita234; 14.03.2022 в 16:14.
Nikita234 вне форума Ответить с цитированием
Старый 14.03.2022, 16:17   #9
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Nikita234, https://programmersforum.ru/showthread.php?t=342210
ForenLi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Антивирус воспринимает мою программу как троян Kronos913 Общие вопросы Delphi 8 20.02.2021 03:20
Java: почему if неверно воспринимает условие? Blondy Помощь студентам 6 02.06.2013 16:25
Embedded WebWrowser -> не воспринимает настройки proxy spirit-ua Работа с сетью в Delphi 1 12.07.2011 08:40
Почему Access 2007 воспринимает поле как параметр? Сергей089 Microsoft Office Access 1 12.11.2010 21:15
Не воспринимает русский ввод. VisTBacK Общие вопросы C/C++ 6 14.02.2010 19:36