Tôi đang gặp sự cố với chương trình mà tôi đang cố gắng viết mã. Nó chỉ là một chương trình điều khiển Windows và tôi rất mới với C++. Nó chỉ là chương trình thứ 4 của tôi.So sánh với kết quả bằng chữ trong hành vi không xác định?
Vấn đề tôi gặp phải là khi tôi chạy chương trình của mình, tôi không có lỗi nhưng rất nhiều cảnh báo cho biết "so sánh với kết quả chuỗi chữ trong hành vi không xác định" trong các dòng mà tôi sẽ làm nổi bật bên dưới.
Khi chương trình chạy thay vì thêm các số tôi muốn nó, nó chỉ mang lại cho tôi một số lượng lớn ngẫu nhiên bất kể tôi nhập gì vào đầu vào của mình.
Đây là mã:
#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;
}
Any help is appreciated. Có lẽ có điều gì đó to lớn mà tôi đã làm sai. Các tên trong các câu lệnh if là tất cả các trình giữ chỗ hiện tại và tôi sẽ bổ sung thêm rất nhiều nếu các câu lệnh khi tôi có thể làm cho nó hoạt động với bare 6, đó là những gì nó cần để làm việc.
'if (items == 0)' không có ý nghĩa gì cả.Bạn không phân bổ động 'các mục', nó là một biến ngăn xếp. Sự so sánh đó sẽ không bao giờ đúng. – Praetorian