jl006749 发表于 2015-1-16 08:22:49

新手求高手帮忙看看这道题怎么做啊

小弟在国外上学,刚刚接触这门语言。。。老师出的题不会做,求懂英语的大神帮忙下谢谢。。。

小人 发表于 2015-1-16 10:02:30

现在,创建.............
同样渣渣英语

hacker.jin 发表于 2015-1-16 12:40:59

楼主好歹发文字给我们复制吧,翻译工具很牛逼

jl006749 发表于 2015-1-16 14:13:43

啊啊啊 我也搞不懂啊,所以来问你们,我Google下神马宏什么的看不懂啊

爱琴海里的星 发表于 2015-1-16 19:48:40

顶楼主~

Xiao_肚oO 发表于 2015-1-17 03:50:56

译(凑合看):
现在,你需要创建一些变量来计算"short,int, long, signed, unsigned"这些类型的最大最小范围。你将使用pow()函数来计算这些范围(pow函数在cmath头文件中声明),而对于特殊类型则使用sizeof(),这需要根据相应的变量去合理安排。(你不需要用pow去计算unsigned类型的最小值,因为其值就等于0)。sizeof()函数将会处理传入的类型,并返回其类型的字节大小。你需要通过传入类型来使用这个函数,例如sizeof(float),sizeof(int),等等。之后你需要打印这些计算结果。请确保这些类型的编号和宏打印出来的编号一致!!!好了,现在创建一个函数去将signed和unsigned相应的最大值打印出来。然后看看结果,你发现了什么?
在这个程序里,你还需要提示用户输入字符。之后打印输入的字符,并作为十进制、二进制和十六进制的字符和ASCII码返回给用户。

仰望天上的光 发表于 2015-1-17 12:13:53


#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');
        }
}

雪是梅之香 发表于 2015-1-18 19:10:31

没有中文版,看不懂啊
页: [1]
查看完整版本: 新手求高手帮忙看看这道题怎么做啊