#c #arrays #if-statement
#c #массивы #if-statement
Вопрос:
Это мой код ниже, у меня ошибка. ([Ошибка] не удается преобразовать ‘float [6]’ в float при присваивании.) Я не знаю, что делать или что вкладывать в прибыль… Моя цель — поместить самые высокие расходы, самую высокую прибыль и самую низкую прибыль ниже. но у меня такая ошибка.
#include <iostream>
#include <string>
using namespace std;
int main(){
int month[] = {1,2,3,4,5,6};
float profit;
string monthName;
float sales[6] = {1000, 1500, 2500, 5000, 4000, 1800};
float expenses[6] = {500, 250, 100, 1000, 200, 800};
float totalex=0,totalsale=0,totalprofit;
float highSales=0, highExp=0, highProf=0, lowProf=0;
string highMonth="";
cout << "Company Sales and Expenses For 2020" << endl;
for (int i=0; i <=6; i ) {
profit = sales[i]-expenses[i];
totalprofit =profit;
totalsale =sales[i];
totalex =expenses[i];
switch(month[i]) {
case 1: monthName="January"; break;
case 2: monthName="February"; break;
case 3: monthName="March"; break;
case 4: monthName="April"; break;
case 5: monthName="May"; break;
case 6: monthName="June"; break;
}
if(sales[i]>highSales) {
highSales = sales[i];
highMonth = monthName;
highExp = expenses;
highProf = profit;
lowProf = profit;
}
cout <<"nn" << monthName<<"tt"<<sales[i]<<"tt"<<expenses[i]<<"ttt"<<profit;
}
cout << "nSummary : " << endl;
cout << "tTotal Sales : " << totalsale << endl;
cout << "tTotal Expenses : " << totalex << endl;
cout << "tTotal Profit : " << totalprofit << endl;
cout << "tHighest Sales : " << highSales << "tMonth of " << highMonth << endl;
cout << "tHighest Expenses : " << highExp << "tMonth of " << highMonth << endl;
cout << "tHighest Profit : " << highProf << "tMonth of " << highMonth << endl;
cout << "tLowest Profit : " << lowProf << "tMonth of " << highMonth << endl;
cout << "nProgrammed by: ";
return 0;
}
Это мой код выше. Проблема в том, что я не могу напечатать самые высокие расходы, самую высокую прибыль и самую низкую прибыль. Я не могу скомпилировать и запустить, как показывает эта ошибка [Ошибка] не удается преобразовать ‘float [6]’ в float в присваивании.
Комментарии:
1. Подсказка: компилятор сообщает вам, в какой строке возникла проблема. Например, мой компилятор сообщил мне, что ошибка находится в строке 35. Я посмотрел там и обнаружил опечатку:
highExp = expenses;
должно бытьhighExp = expenses[i];
Ответ №1:
highExp = expenses;
в этой строке highExp — это значение с плавающей запятой, а expenses — a float[6]
, следовательно, вы пытаетесь присвоить массиву с плавающей запятой значение с плавающей запятой, которое недопустимо.
Кроме for (int i=0; i <=6; i ) {
того, это приведет к ошибкам, sales[6]
которых нет в продажах, так как начало продаж sales[0]
и заканчивается на sales[5]
, то же самое с expenses
.
Комментарии:
1. на данный момент у меня возникают проблемы с выравниванием
2. Делайте это по одному шагу за раз и ищите вещи, которые вам трудно понять.
3. это в этом разделе: cout << имя_месяца << » t» <<продажи [i] << » t» <<расходы [i] << » t» << прибыль << endl; Я изо всех сил пытаюсь исправить выравнивание чисел в разделе прибыли. вроде все в порядке, за исключением чисел в proft.
4. Я не совсем уверен, что вы имеете в виду, но, возможно en.cppreference.com/w/cpp/io/manip/setw функция std::setw может быть полезна для установки фиксированной ширины строки для значения прибыли
5. теперь я включил изображение, февральская часть вообще не выровнена, в отличие от остальных