Napisałem podany kod
#include <stdio.h>
#include <stdlib.h>
struct abc{
unsigned char a: 1;
unsigned char b: 1;
unsigned char c: 1;
unsigned char d: 1;
unsigned char e: 1;
unsigned char f: 1;
unsigned char g: 1;
unsigned char h: 1;
};
union bit_set
{
unsigned int number;
short number2[2];
unsigned char number3[4];
struct abc number4[4];
};
int main()
{
int i;
union bit_set p;
printf("Podaj liczbe");
scanf("%u",&p.number);
printf("%u\n",p.number);
for(i=0;i<2;i++)
{
printf("%hu ",*(p.number2+i));
}
printf("\n");
for(i=0;i<4;i++)
{
printf("%u ",*(p.number3+i));
}
printf("\n");
for(i=0;i<4;i++)
{
printf("%d",(p.number4+i)->h);
printf("%d",(p.number4+i)->g);
printf("%d",(p.number4+i)->f);
printf("%d",(p.number4+i)->e);
printf("%d",(p.number4+i)->d);
printf("%d",(p.number4+i)->c);
printf("%d",(p.number4+i)->b);
printf("%d",(p.number4+i)->a);
printf(" ");
}
return 0;
}
Szukam sposobu na sprawdzenie poprawności wpisanej liczby (po wpisaniu czegoś innego niż liczba program ma wywalić incorrect input oraz zwrócić 1 ) niestety nie mogę używać operacji if , switch oraz operatora trójargumentowego ? : .