编写程序:从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。 要求: ① 在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现; ② 将键盘输入的十进制数转换成二进制数由子程序DTOB实现; ③ 在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现; ④ 将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。
时间: 2024-02-06 14:10:53 浏览: 80
键盘录入数据的转换与显示.rar_1-wire_4位二进制数
以下是程序的代码实现:
```
#include <stdio.h>
#define DSTRING(str) printf(str) // 宏指令,用于显示提示信息
void DTOB(unsigned char num, unsigned char* binary) { // 子程序,将十进制数转换为二进制数
int i;
for (i = 7; i >= 0; i--) {
binary[i] = num % 2;
num /= 2;
}
}
unsigned char FMAX(unsigned char* nums) { // 子程序,找出最大的二进制数
int i;
unsigned char max = 0;
for (i = 0; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
return max;
}
void BTOAD(unsigned char* binary) { // 子程序,将二进制数转换为十进制数并显示
int i, num = 0;
for (i = 0; i < 8; i++) {
num = num * 2 + binary[i];
}
printf("%d\n", num);
}
int main() {
unsigned char nums[10][8]; // 存放二进制数
int i, j;
unsigned char max = 0;
for (i = 0; i < 10; i++) {
DSTRING("请输入一个十进制数(小于256):");
unsigned char num;
scanf("%hhu", &num);
DTOB(num, nums[i]); // 转换为二进制数
}
max = FMAX(nums[0]); // 找出最大的二进制数
for (i = 1; i < 10; i++) {
if (FMAX(nums[i]) > max) {
max = FMAX(nums[i]);
}
}
printf("最大的二进制数为:");
for (j = 0; j < 8; j++) { // 显示最大的二进制数
printf("%d", nums[i][j]);
}
printf("\n其对应的十进制数为:");
BTOAD(nums[i]); // 显示最大的二进制数对应的十进制数
return 0;
}
```
阅读全文