This repository has been archived on 2023-09-01. You can view files and clone it, but cannot push or open issues or pull requests.
PJC-test/main.c

100 lines
1.8 KiB
C

#include <stdio.h>
#include <stdlib.h>
int get_user_input(){
int x = -1;
int ok = -1;
while( ok != 1){
/* as array values will only be >0, unsigned int is fine */
ok = scanf("%u", &x);
if(ok == EOF){
printf("\ncaught Ctrl+D...\n");
ok = 1;
x = 2;
break;
}
if(ok == 0){
while (fgetc(stdin) != '\n'){
}
printf("[*] give me a correct value\n");
break;
}
}
return x;
}
int lemmego(){
printf("[*] you wished to go, quitting...\n");
return EXIT_SUCCESS;
}
void print_banner(){
printf("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n"
"|u|l|t|i|m|a|t|e|_|a|r|r|a|y|_|h|a|n|d|l|e|r|\n"
"+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n");
}
void do_magic(uint arr_len){
printf("[i] arr_len = %u\n", arr_len);
int *noice_arr = malloc(arr_len*sizeof(int));
printf("noice_arr: [ ");
for (int i = 0; i < arr_len; i++){
noice_arr[i] = i;
printf("%d ", noice_arr[i]);
}
printf("]\n");
printf("[*] transposing array\n");
int *ugly_arr = malloc(arr_len*sizeof(int));
uint helper = arr_len-1;
printf("ugly_arr: [ ");
for (int i = 0; i < arr_len; i++, helper--){
ugly_arr[i] = noice_arr[helper];
printf("%d ", ugly_arr[i]);
}
printf("]\n");
free(noice_arr);
free(ugly_arr);
}
int main()
{
int selection, arr_len=0;
print_banner();
while ( selection != -1 ) {
printf("\npick a choice\n");
printf("9000 - do magic\n"
"1 - quit\n"
"~> ");
selection = get_user_input();
switch ( selection ) {
case 9000:
printf("[*] please gimme a natural number:\n"
"--> ");
arr_len = get_user_input();
if (arr_len == 0) {
printf("[!] array cannot have zero size, mate...\n");
break;
}
printf("[*] doing evil stuff\n");
do_magic(arr_len);
break;
case 1:
lemmego();
return 9000;
default:
printf("[x] invalid option\n");
selection = 0;
break;
}
}
return 0;
}