Mam problem z programem, który próbuję kodować. To tylko program konsoli Windows i jestem bardzo nowy w C++. To tylko mój czwarty program.Porównanie z dosłownymi wynikami ciągów w nieokreślonym zachowaniu?
Problem polega na tym, że kiedy uruchamiam program, nie mam błędów, ale wiele ostrzeżeń, które mówią "porównanie z dosłownymi ciągami znaków w nieokreślonym zachowaniu" w liniach, które podkreślę poniżej.
Gdy program działa, zamiast dodawać liczby, chcę, żeby to właśnie dało mi losową ogromną liczbę, bez względu na to, co wprowadzę dla swoich danych wejściowych.
Oto kod:
#include <iostream>
using namespace std;
int main()
{
int hold;
int i;
int n;
i = 6;
int result;
int * price;
char items[100][100];
if (items == 0)
cout << "No items can be stored";
else
{
for (n=0; n<i; n++)
{
cout << "Item#" << n << ": ";
cin >> items[n];
}
cout << "\nYou Entered: \n";
for (n=0; n<i; n++)
cout << items[n] << ", ";
}
for (n=0; n<i; n++)
{
if (items[n] == "ab"){
price[n] = 2650;
}
else if (items[n] == "ae"){
price[n] = 1925;
}
else if (items[n] == "ie"){
price[n] = 3850;
}
else if (items[n] == "bt"){
price[n] = 3000;
}
else if (items[n] == "pd"){
price[n] = 2850;
}
else if (items[n] == "ga"){
price[n] = 2600;
}
}
for (n=0; n<i; n++)
{
result = result + price[n];
}
cout << "\nTotal gold for this build: " << result;
cin >> hold;
return 0;
}
Każda pomoc jest mile widziana. Prawdopodobnie jest coś wielkiego, co zrobiłem źle. Nazwy w instrukcjach if są obecnie symbolami zastępczymi, a ja dodam dużo więcej, jeśli stwierdzę, że mogę pracować z nierozstrzygniętymi 6, co jest niezbędne do działania.
'if (items == 0)' to nie ma żadnego sensu.Nie przypisujesz dynamicznie "items", jest to zmienna stosu. To porównanie nigdy nie będzie prawdziwe. – Praetorian