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");
}
}
}
0 nhận xét: