01/10/2018, 11:10
Lỗi Segmentation fault. Em sai ở đâu ạ?
>//Viet ham chuyen so thap phan thanh nhi phan
> #include <iostream>
> #include <cmath>
> using namespace std;
> void LaySoNhiPhan (int So, int arr[])
> {
> //Khai bao bien
> int SoDu, dem =0;
> int *p;// khai bao bien con tro
> //Nhap so du vao chuoi
> do
> {
> int i =0;
> SoDu = So %2;//lay phan du
> So /=2;//so moi = so cu /2
> *p = SoDu;//tro p vao bien so du
> p = &arr[i];
> i++;
> dem ++;
> }
> while (So /2==0);
> //Dao chuoi
> for (int i = dem-1; i >=0;i--)
> {
> cout << arr[i];
> }
> };
> int main()
> {
> //khai bao bien
> int a =0;
> //khai bao ham
> int arr[100];
> //Nha p bien
> cout << "Nhap so a = ";
> cin >> a;
> cout << "Dang nhi phan cua so do la: " << " ";
> LaySoNhiPhan(a, arr);
> return 0;
> }
Bài liên quan
Hi Việt Hưng Vũ.
Bạn cho cái màn hình lỗi xem.
Segmentation fault ở chổ
*p = SoDu
đó bạn. Vì p là con trỏ nó chỉ gán theo kiểu reference thôi như cáip = &a[i]
đó. Mà có một chú ý như thế này, ban thấy cáiint arr[100]
khai báo trong hàm main đâu có tác dụng, vào hàm LaySoNhiPhan khai báo cũng được, mà bài này bạn dùng đệ quy thử được không. Good luck*Đang tự hỏi *p này dùng để làm gì*
Bạn cứ viết vào mảng bt rồi đọc ngược lại sau.
em muốn gán biến SoDu cho arr[i] thì phải làm ntn ạ?
Than ai!!!