Cứu em vs: Code C++ đổi 1 số nguyên sang cơ số 2 8 16 k chạy được

#include<iostream>
#include<stdio.h>
using namespace std;


/*
Đ?i 1 s? nguyên sang co s? 2 8 16


*/


// khai báo 1 cái node
struct node
{
int data;
struct node *pNext;
};
typedef struct node NODE;
// khai báo c?u trúc c?a 1 cái stack
struct stack
{
NODE *pTop; // con tr? qu?n lí d?u stack
};
typedef struct stack STACK;


// hàm kh?i t?o stack
void KhoiTaoStack(STACK &s)
{
s.pTop = NULL;
}


// hàm kh?i t?o 1 cái node
NODE *KhoiTaoNode(int x)
{
NODE *p = new NODE();
if (p == NULL)
{
printf ("\nKhong du bo nho de cap phat !");
return NULL;
}
p->data = x; // dua d? li?u c?a bi?n x vào trong cái data c?a node p
p->pNext = NULL;
return p;
}


/* ================= KI?M TRA STACK R?NG =================*/
bool IsEmpty(STACK s)
{
// n?u stack r?ng
if (s.pTop == NULL)
{
return false;
}
return true;
}


/* ================= THÊM PH?N T? VÀO Đ?U STACK =================*/
bool Push(STACK &s, NODE *p)
{
// node p dang r?ng
if (p == NULL)
{
return false;
}


// n?u danh sách r?ng
if (IsEmpty(s) == false)
{
s.pTop = p;// node p cung chính là node pTop <=>chính là node d?u stack
}
else
{
p->pNext = s.pTop; // B1: cho con tr? c?a node p tr? d?n node pTop
s.pTop = p;// c?p nh?t l?i node d?u chính là node p
}
return true;// thêm thành công
}


/* ================= L?Y PH?N T? Đ?U DANH SÁCH VÀ H?Y NÓ ĐI ================= */
bool Pop(STACK &s, int &x) // x chính là giá tr? c?n l?y ra
{
// n?u danh sách r?ng
if (IsEmpty(s) == false)
{
return false; // l?y th?t b?i <=> danh sách dang r?ng
}
NODE *p = s.pTop; // gán node d?u danh sách vào node p <=> node p chính là node mà tí n?a ta s? xóa nó
s.pTop = s.pTop->pNext; // c?p nh?t l?i node d?u
x = p->data; // l?y giá tr? c?a node d?u ra gán vào bi?n x
return true; // l?y ph?n t? thành công
}


/* ================= XEM THÔNG TIN C?A NODE Đ?U DANH SÁCH ================= */
bool Top(STACK s, int &x) // x chính là giá tr? c?n xem
{
// n?u danh sách r?ng


if (IsEmpty(s) == false)
{
return false;
}
x = s.pTop->data;
return true;
}


// HÀM Đ?I CO S? 10 SANG CO S? 2 8 16
void Chuyen_So_So(STACK &s, int cosocandoi, int hethapphan)
{
while (hethapphan != 0)
{
int x = hethapphan % cosocandoi;
NODE *p = KhoiTaoNode(x); // thêm x vào node p
Push(s, p); // thêm node p vào stack
hethapphan /= cosocandoi;
}
}


// xu?t danh sách stack
void XuatStack(STACK &s)
{
while (IsEmpty(s) == true)
{
int x;
Pop(s, x);
if (x < 10)
{
printf("",x);
}
else
{
if (x == 10)
{
printf ("A");
}
else if (x == 11)
{
printf ( "B");
}
else if (x == 12)
{
printf ( "C");
}
else if (x == 13)
{
printf ( "D");
}
else if (x == 14)
{
printf ( "E");
}
else if (x == 15)
{
printf ( "F");
}

}
}
}






int main()
{
STACK s;
KhoiTaoStack(s);

int hethapphan;
printf("\nNhap gia tri he thap phan(10) can chuyen: ");
scanf("%d",hethapphan);
int cosocandoi;
printf( "\nNhap co so can chuyen(2, 8, 16: ");
scanf("%d",cosocandoi);


Chuyen_So_So(s, cosocandoi, hethapphan);
printf( "\nKET QUA\n");
XuatStack(s);
system("pause");
return 0;
}
k chạy được cứu em vs
 
Sửa lần cuối bởi điều hành viên:
  • Chủ đề
    cứu em vs
  • Thống kê

    Chủ đề
    102,309
    Bài viết
    469,952
    Thành viên
    340,419
    Thành viên mới nhất
    iwiniwindiii00
    Top