Question: I need to write a program in C that prints out all integral types size and range. And then I have to overflow each using

I need to write a program in C that prints out all integral types size and range. And then I have to overflow each using addition of the same type. When I run the program using gcc, I get:

Storage size for char : 1

Floating Point exception (core dumped).

And the the program exits. What am I doing wrong?

#include #include #include

#define CHAR_MAX 127/255 #define CHAR_MIN -128/0 #define INT_MAX 32767 #define INIT_MIN -32767 #define LONG_MAX 2147483647 #define LONG_MIN -2147483647 #define SCHAR_MAX 127 #define SCHAR_MIN -127 #define SHRT_MAX 32767 #define SHRT_MIN -32767 #define UCHAR_MAX 255 #define UINIT_MAX 65535 #define ULONG_MAX 4294967295 #define USHRT_MAX 65536

int main() {

//Question 1 printf("storage size for char: %d ", sizeof(char)); printf("Upper bound for char is %d and lower bound is %d ", CHAR_MAX, CHAR_MIN);

printf("storage size for int: %d ", sizeof(int)); printf("Upper bound for int is %d and lower bound is %d ", INT_MAX, INT_MIN);

printf("storage size for long: %d ", sizeof(long)); printf("Upper bound for long is %d and lower bound is %ld ", LONG_MAX, LONG_MIN);

printf("storage size for signed char: %d ", sizeof(signed char)); printf("Upper bound for signed char is %d and lower bound is %d ", SCHAR_MAX, SCHAR_MIN);

printf("storage size for short: %d ", sizeof(short)); printf("Upper bound for short is %d and lower bound is %d ", SHRT_MAX, SHRT_MIN);

printf("storage size for unsigned char: %d ", sizeof(unsigned char)); printf("Upper bound for unsigned char is %d ", UCHAR_MAX);

printf("storage size for unsigned int: %d ", sizeof(unsigned int)); printf("Upper bound for unsigned int is %d ", UINT_MAX);

printf("storage size for unsigned long: %d ", sizeof(unsigned long)); printf("Upper bound for unsigned long is %d ", ULONG_MAX);

printf("storage size for unsigned short: %d ", sizeof(unsigned short)); printf("Upper bound for unsigned short is %d ", USHRT_MAX);

//Question 2

int i1 = 500; int i2 = 1000; int sumi = i1 + i2; printf("sum of int 1 and int 2 is = %d ", sumi);

char c1 = 'a'; char c2 = 'b'; char sumc = c1 + c2; printf("sum of char 1 and char 2 is = %c ", sumc);

long l1 = 99999999; long l2 = 9999999999; long suml = l1 + l2; printf("sum of long 1 and long 2 is = %ld ", suml);

short s1 = 1000; short s2 = 9999; short sums = s1 + s2; printf("sum of short 1 and short 2 is = %h ", sums);

signed char sc1 = 'a'; signed char sc2 = 'b'; signed char sumsc = sc1 + sc2; printf("sum of signed char 1 and signed char 2 is = %c ", sumsc);

unsigned int ui1 = 10000; unsigned int ui2 = 99999; unsigned int sumui = ui1 + ui2; printf("sum of unsigned int 1 and unsigned int 2 is = %u ", sumui);

unsigned char uc1 = 'a'; unsigned char uc2 = 'b'; unsigned char sumuc = uc1 + uc2; printf("sum of unsigned char 1 and unsigned char 2 is = %c ", sumuc);

unsigned long ul1 = 1000000; unsigned long ul2 = 9999999; unsigned long sumul = ul1 + ul2; printf("sum of unsigned long 1 and unsigned long 2 is = %lu ", sumul);

unsigned short us1 = 1000; unsigned short us2 = 9999; unsigned short sumus = us1 + us2; printf("sum of unsigned short 1 and unsigned short 2 is = %hu ", sumus);

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!