125k views
2 votes
Create union integer with members char c, short s, int i and long b. Write a program that inputs the values of type char, short, int, and long and stores the values in union variables of type union integer. Each union variable should be printed as a char, a short, an int and a long. D the values always print correctly? Also create pseodocode or flowchart.

Here is the feedback that I received when I originally turned this in:
I have the following concerns: You need to save your program file with a .c extension. You should declare your union above the main module and then utilize it from within this portion. You have declared the union and then created a function definition prior to entering the main() function.
Here is the original code provided by homework help: Thanks in advance
#include
union myUnion {
char c;
short s;
int i;
long l;
};
void print(myUnion u) {
printf("As a character: %c\\", u.c);
printf("As a short: %hd\\", u.s);
printf("As an int: %d\\", u.i);
printf("As a long: %ld\\\\", u.i);
}
int main() {
myUnion u;
printf("Please enter a character: ");
scanf("%c", &(u.c));
print(u);
printf("Please enter a short: ");
scanf("%hd", &(u.s));
print(u);
printf("Please enter an int: ");
scanf("%d", &(u.i));
print(u);
printf("Please enter a long: ");
scanf("%ld", &(u.l));
print(u);
return 0;

User AmeliaMN
by
4.3k points

1 Answer

2 votes

Answer:

The updated program in C is as follows:

#include <stdio.h>

union myUnion{ char c; short s; int i; long l; };

int main(){

union myUnion inputs;

printf("Character: "); scanf("%c", &inputs.c);

printf("Output: %c", inputs.c);

printf("\\Short: "); scanf("%hd", &inputs.s);

printf("Short: %hd", inputs.s);

printf("\\Integer: "); scanf("%d", &inputs.i);

printf("Output: %d", inputs.i);

printf("\\Long: "); scanf("%ld", &inputs.l);

printf("Long: %ld", inputs.l);

return 0;

}

The pseudocode is as follows:

Function union myUnion {

character; short; int; long

}

main() {

myUnion inputs;

Input inputs.c; Print inputs.c

Input inputs.s; Print inputs.s

Input inputs.i; Print inputs.i;

Input inputs.l; Print inputs.l

}

Step-by-step explanation:

This defines the union function

union myUnion{ char c; short s; int i; long l; };

The main begins here

int main(){

This calls the union function to main

union myUnion inputs;

This prompts and gets input for character variable

printf("Character: "); scanf("%c", &inputs.c);

This prints the character input

printf("Output: %c", inputs.c);

This prompts and gets input for short variable

printf("\\Short: "); scanf("%hd", &inputs.s);

This prints the short input

printf("Short: %hd", inputs.s);

This prompts and gets input for integer variable

printf("\\Integer: "); scanf("%d", &inputs.i);

This prints the integer input

printf("Output: %d", inputs.i);

This prompts and gets input for long variable

printf("\\Long: "); scanf("%ld", &inputs.l);

This prints the long input

printf("Long: %ld", inputs.l);

return 0;

}

User Nafis
by
4.0k points