Member 13015247 Ответов: 3

Почему возникает ошибка при компиляции моего кода


я попытался использовать концепцию временного float в своем коде, чтобы получить вывод avg как float, но в моем коде может быть какая-то ошибка, исправьте ее

Что я уже пробовал:

#include<stdio.h>
int main()
{
int meatballs[5],i,totalmeatballs=0,avg;
for(i=0;++i<5;)
{
    printf("how many meatballs you ate on day %d ",i+1);
    scanf("%d",&meatballs[i]);
}
for(i=0;++i<5;)
{
    totalmeatballs+=meatballs[i];
}
(float)avg= ((float)totalmeatballs/5);
printf("you ate total %d meatballs and on avg %fmeatballs",totalmeatballs,(float)avg);
}

ошибка
In function ‘main’:
array.c:14:11: error: lvalue required as left operand of assignment
 (float)avg= ((float)totalmeatballs/5);

3 Ответов

Рейтинг:
1

Graeme_Grant

Сообщение об ошибке хорошо объясняет это... meatballs это твоя проблема ... Правка у вас также есть еще одна проблема со строкой, выделенной в вашем сообщении об ошибке...


Member 13015247

plz можете ли вы уточнить или объяснить свое решение

Graeme_Grant

Я думаю, что пполиморф прекрасно выразился. Это базовая отладка 101. Я выделил для вас проблемные места. Если мы сделаем это для вас,вы не научитесь.

Рейтинг:
0

Patrice T

Попробуйте заменить

(float)avg= ((float)totalmeatballs/5);

с
float avg= ((float)totalmeatballs/5);


Вам нужно узнать разницу между объявлением переменной и приведением. и доказуемо гораздо больше.

Вот ссылки на справочники книг по С и с++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]

Цитата:
я уже объявил avg как int здесь я использую временные плавающие средства только для этого уравнения оно должно принимать значение float

Где вы нашли понятие "временный поплавок"?


Member 13015247

я уже объявил avg как int здесь я использую временные плавающие средства только для этого уравнения оно должно принимать значение float

Patrice T

Код, который вы опубликовали, не включает объявление avg как целого числа.
Где вы нашли понятие "временный поплавок"?

Рейтинг:
0

Richard MacCutchan

Вы не можете использовать приведение в левой части выражения. Объявить avg как float не так как int.

Вам действительно нужно заполучить книгу по Си, а не пытаться учиться, размещая вопросы здесь.