新手求高手帮忙看看这道题怎么做啊
小弟在国外上学,刚刚接触这门语言。。。老师出的题不会做,求懂英语的大神帮忙下谢谢。。。现在,创建.............
同样渣渣英语 楼主好歹发文字给我们复制吧,翻译工具很牛逼 啊啊啊 我也搞不懂啊,所以来问你们,我Google下神马宏什么的看不懂啊 顶楼主~ 译(凑合看):
现在,你需要创建一些变量来计算"short,int, long, signed, unsigned"这些类型的最大最小范围。你将使用pow()函数来计算这些范围(pow函数在cmath头文件中声明),而对于特殊类型则使用sizeof(),这需要根据相应的变量去合理安排。(你不需要用pow去计算unsigned类型的最小值,因为其值就等于0)。sizeof()函数将会处理传入的类型,并返回其类型的字节大小。你需要通过传入类型来使用这个函数,例如sizeof(float),sizeof(int),等等。之后你需要打印这些计算结果。请确保这些类型的编号和宏打印出来的编号一致!!!好了,现在创建一个函数去将signed和unsigned相应的最大值打印出来。然后看看结果,你发现了什么?
在这个程序里,你还需要提示用户输入字符。之后打印输入的字符,并作为十进制、二进制和十六进制的字符和ASCII码返回给用户。
#include <stdio.h>
#include <math.h>
#define BITS_PERBYTE 8
#define MAX_MIN_SIGNED(TYPE) \
do { \
TYPE si; \
si = TYPE(-pow(2, BITS_PERBYTE*sizeof(TYPE)-1)); \
printf("min value of %s is: %d\n",#TYPE,si); \
si = TYPE(pow(2, BITS_PERBYTE*sizeof(TYPE)-1)-1); \
printf("max value of %s is: %d\n", #TYPE, si); \
si++; \
printf("max value of %s + 1 is: %d\n", #TYPE, si); \
} while(0);
#define MAX_MIN_UNSIGNED(TYPE) \
do { \
TYPE ui; \
ui = 0; \
printf("min value of %s is: %u\n",#TYPE,ui); \
ui = TYPE(pow(2, BITS_PERBYTE*sizeof(TYPE))-1); \
printf("max value of %s is: %u\n", #TYPE, ui); \
ui++; \
printf("max value of %s + 1 is: %d\n", #TYPE, ui); \
} while(0);
void output_max_min(void);
void show_ascii(void);
int main(void) {
output_max_min();
show_ascii();
return 0;
}
static void print_delimiter(void);
void output_max_min(void) {
print_delimiter();
MAX_MIN_SIGNED( signed short );
print_delimiter();
MAX_MIN_UNSIGNED( unsigned short );
print_delimiter();
MAX_MIN_SIGNED( signed int );
print_delimiter();
MAX_MIN_UNSIGNED( unsigned int );
print_delimiter();
MAX_MIN_SIGNED( signed long );
print_delimiter();
MAX_MIN_UNSIGNED( unsigned long );
print_delimiter();
}
void print_delimiter(void) {
printf("===========================\n");
}
static void show_binary( char c );
void show_ascii(void) {
int c = 'a';
while( 1) {
printf("Please input a char, then enter, input enter to quit:");
c= getchar();
if( c == '\n') break;
printf("input char is : %c, Dec value is: %d, Hex value is: %x, Bin value is:", c, c, c);
show_binary(c);
printf("\n");
getchar();//eat enter
}
}
void show_binary( char c ) {
if( c == 1 || c == 0 ) putchar(c+'0');
else {
show_binary(c/2);
putchar(c%2+'0');
}
}
没有中文版,看不懂啊
页:
[1]