Xây dựng chương trình nhập vào bàn phím một số nguyên dương sau đó thực hiện chuyển đổi số đó từ thập phân sang hệ nhị phân và hệ bát phân. ...
Xây dựng chương trình C như sau:
Hàm main() thực hiện công việc sau:
Hiển thị menu nhu sau:
1. Chon 1 de Nhap so nguyen duong (he 10)
2. Chon 2 de Chuyen so vua nhap sang he 2
3. Chon 3 de Chuyen so vua nhap sang he 8
4. Chon 4 de ket thuc
Chon:
- Khi người dùng chọn 1 thì gọi và thực hiện hàm NhapSo(): cho phép người dùng nhập vào một số không âm. Nếu nhập số âm thì bắt nhập lại. Sau khi nhập xong thì trở về menu trên
- Khi người dùng chọn 2 thì gọi và thực hiện hàm Chuyen10To2(): cho phép chuyển số vừa nhập sang hệ 2
- Khi người dùng chọn 3 thì gọi và thực hiện hàm Chuyen10To8(): cho phép chuyển số vừa nhập sang hệ 8
- Khi người dùng chọn 4 thì kết thúc chương trình.
Yêu cầu:
- Viết chương trình thực hiện các chức năng trên
- Cải tiến chương trình để tối ưu hiệu năng
Bài giải [Code]
#include<stdio.h>
#include<conio.h>
#include<windows.h>
void nhap(int *n)
{
while(1)
{
printf("\nNhap so nguyen duong: ");
scanf("%d",n);
if(*n<0)
printf("Nhap sai(n duong)");
else
break;
}
}
void chuyen10to2(int n)
{
int i=0,d[100];
while(n!=0)
{
d[i] = n%2;
n =n/2;
i++;
}
for(int j=i-1;j>=0;j--)
{
printf("%d",d[j]);
}
}
void chuyen10to8(int n)
{
int i=0,d[100];
while(n!=0)
{
d[i] = n%8;
n =n/8;
i++;
}
for(int j=i-1;j>=0;j--)
{
printf("%d",d[j]);
}
}
main()
{
int c,n;
while(c!=4)
{
printf("\nChon 1: Nhap so nguyen duong");
printf("\nChon 2: Chuyen so vua nhap sang he so 2");
printf("\nChon 3: Chuyen so vua nhap sang he so 8");
printf("\nChon 4: Ket thuc");
printf("\nMoi ban chon: ");
scanf("%d",&c);
switch(c)
{
case 1:
nhap(&n);
break;
case 2:
chuyen10to2(n);
break;
case 3:
chuyen10to8(n);
break;
default:
printf("Khong hop le");
system("pause");
system("cls");
}
}
}
COMMENTS