30/09/2018, 18:02
Hỏi về lỗi code C++
Cho mình hỏi là cái code C++ này bị lỗi gì mà mình cũng không thể hiểu nổi…
#include <iostream>
#include <math.h>
using namespace std;
#define Pi 3.14
int Tinh(int chuVi, int dienTich, int banKinh)
{
chuVi = banKinh * 2 * Pi;
dienTich = banKinh*banKinh*Pi;
return dienTich;
}
int main(){
int a, b, c;
cout << "Nhap vao banKinh cua hinh tron:" << " ";
cin >> c;
cout<<Tinh(a, b, c);
cout << endl;
system("pause");
}
Bài liên quan
Có thể nói rõ cho mình hiểu được không…và khi chạy thì báo lỗi ở dòng
Tinh(a, b, c);
mình đã thử viết lại code của bạn mà nó vẫn chạy bình thường mà
Mình viết trên visual studio nó không chạy
Bạn nhập chỉ nhập vào c mà không nhập a, b thì nó sẽ lấy giá trị ngẫu nhiên cho a, b nên bị sai.
Code này sẽ chạy nhưng ra kq sai thôi chứ nhỉ :?
VS của bạn có hú lỗi gì ko?
Nhưng cái này nhập bán kính vô thôi mà
ko biết cái VS nó sao nữa, Dev C thì chạy
À hiểu ý bạn rồi. Vậy bạn coi lại cái VS xem nó có báo lỗi gì không?
Nếu vẫn không chạy thì có thể bạn tạo nhầm project rồi thường thì dễ bị nhầm giữa project application vs controler
loi nay nè bạn…
https://googledrive.com/host/0B2KK2LUNmdmYcm43NWNjWGM2RjA
Lỗi do không sử dụng biến a, b.
Thường thì cái này không quan trọng trong một số trình biên dịch bạn có thể viết nó theo cách khác mà không dùng tới 2 biến này không?
Anh boychip xin cho em hỏi là: Hàm bạn này làm ra là để nhập bán kính vào để tính ra chu vi và diện tích lên hiển nhiên là không có chu vi và diện tích để nhập vào rồi ạ, Em nghĩ ý tưởng bạn đấy là nhập a,b tổng quát sau đó nhập số c dựa vào lệnh trong hàm tính ra a và b. Nhưng em không biết là hàm khi thực hiện nó sẽ phải có đủ các tham số đầu vào xong nó mới thực hiện(a,b) hay chỉ cần tham số c sau đó dựa vào các lệnh thực thi trong hàm nó =>> giá trị a và b ạ?
Bạn chỉ cần cho a và b một giá trị nào đó trước khi truyền vào hàm, bằng 0 chẳng hạn.
Nhưng với cách truyền này thì a và b sau khi ra khỏi hàm ko thay đổi giá trị đâu. Cần phải truyền pointer hoặc reference vào.
Cách tốt nhất là viết một hàm tính chu vi, 1 hàm tính diện tích riêng. Mỗi hàm chỉ có 1 tham số là bán kính. Best Way.
A post was merged into an existing topic: Duplicate posts will be moved here
Đúng rồi bạn. Chỉ cần nhập vào 1 biến thôi. 2 biến kia mình tính dựa trên biến c nên không cần khai báo trong hàm main cũng được. Chỉ khi nào mình cần sử dụng lại giá trị cần tính thì mới dùng 1 biến lưu lại giá trị đó.
Nhưng sao bạn ấy dùng nhập c để tính a và b lại ra kết quả sai ạ?
Sai là đúng rồi. Chu vi, diện tích thì kiểu dữ liệu phải là số thực chứ đâu phải số nguyên em
Anh ơi em đổi sang float trong C sao lại thế này ạ?
Em nên tách ra làm 2 hàm con để tính chu vi và diện tích riêng. Mỗi hàm sẽ trả về kết quả riêng, rồi mới lấy kết quả đó in ra nha em.
Vd:
Trong hàm main chỉ cần gọi
Hàm kia em cũng làm tương tự.
vâng nếu làm em cũng làm như anh ạ, Nhưng em đang muốn hiểu nếu làm như bạn ấy thì chương trình sẽ thực hiện như thế nào? Mong anh hiểu thì nói “thông” giúp em ạ.
Hàm của bạn ấy trả về 0. Nghĩa là mọi phép tính thực hiện chỉ có hiệu lực trong hàm. Ra khỏi hàm nó sẽ không còn giá trị nữa mà nó sẽ cho giá trị là 0. Nếu muốn làm như bạn ấy thì chỉ cần in kết quả trong hàm con luôn, nhưng như vậy xuống hàm main sẽ không còn giá trị đó nữa. Còn nếu em muốn dùng lại kết quả thì làm như cái anh vừa mới chỉ đó.