#include #include #include #include #define true 1 //prototypes of the functions void inputOfArray(); void inputRandom(); void inputKeyboard(); void algorithmExec(); void outputOfArray(); int minSearch(); int maxSearch(); int mainMenu(); //main array float mainArray[ 100 ]; int number = 0; void main() { char ch[500] ;int k; while(true) { printf( "Input the number of elements of the array from 1 to 100:\n" ); //scanf( "%9d%1[^\n]",&number ); k= scanf("%9d%1[^\n]", &number, ch); fflush(stdin); if(k == 1) { break; } else { printf("\nError!\n"); } if( number > 100 || number < 0 ) printf("\nEnter retry!\n"); else{ //fflush(stdin);//хуй его знает, нужно или нет, ЗАЕБАЛО ВСЕ:) break; } printf( "\n" ); } /*while(true) { printf( "Input the number of elements of the array from 1 to 100:\n" ); scanf( "%d",&number ); while(true) { while ((ch=getchar()) != '\n') putchar(ch); break; } if( number > 100 || number < 0 ) printf("\nEnter retry!\n"); else{ //fflush(stdin);//хуй его знает, нужно или нет, ЗАЕБАЛО ВСЕ:) break; } printf( "\n" ); }*/ printf( "\nElements in the array. Choose the item in Main Menu:\n"); printf( "\n" ); while( true ) { //menu items switch( mainMenu() ) { case 1: inputOfArray(); break; case 2: outputOfArray(); break; case 3: algorithmExec(); break; case 4: return; break; default: printf( "Error of the input. Try again.\n" ); break; } printf( "\nPlease, press any key to continue." ); /* returns the next character read from the console, but does not display this symbol on the screen. */ getch(); //clean the screen system( "cls" ); } } //function of main menu int mainMenu() { printf( "Main Menu:\n1. Input the array.\n2. Output the array.\n3. Run the task.\n4. Exit\n" ); int solution; char ch; //scanf( "%d", &solution ); while(true) { printf("Your choise: "); scanf( "%d", &solution ); while(true) { while ((ch=getchar()) != '\n') putchar(ch); break; } if( solution > 4 || solution < 0 ) printf("\nEnter retry!\n"); else break; printf( "\n" ); } return solution; } //Function, which is responsible for entering the array. void inputOfArray() { printf( "\nWay to enter array:\n1. Random numbers.\n2. Keyboard.\nYour choise: " ); int solution; char ch; //scanf( "%d", &solution ); while(true) { printf("Your choise: "); scanf( "%d", &solution ); while(true) { while ((ch=getchar()) != '\n') putchar(ch); break; } if( solution > 4 || solution < 0 ) printf("\nEnter retry!\n"); else break; printf( "\n" ); } //the second menu switch( solution ) { case 1: inputRandom(); break; case 2: inputKeyboard(); break; default: printf( "Input error. Try it again.\n" ); break; } } //Directly to the algorithm void algorithmExec() { //count - counter, coordinate is the position of the element int count = 0, coordinate; while( count != number - 1 ) { coordinate = minSearch(); mainArray[ coordinate ] = 0; count++; if( count != number - 1 ) { coordinate = maxSearch(); mainArray[ coordinate ] = 0; count++; } if( count == number - 1 ) coordinate = maxSearch(); } outputOfArray(); //output the results printf( "\nElement: %f; Position of the element: %d\n",mainArray[ coordinate ], coordinate ); } //search min element int minSearch() { int indicator = 0; while( mainArray[ indicator ] == 0 ) indicator++; double min = mainArray[ indicator ]; int imin = indicator; for( int count = indicator; count < number; count++ ) { if( mainArray[ count ] < min && mainArray[ count ] != 0 ) { min = mainArray[ count ]; imin = count; } } return imin; } //search max element int maxSearch() { double max = mainArray[ 0 ]; int imax = 0; for( int count = 0; count < number; count++ ) { if( mainArray[ count ] > max && mainArray[ count ] != 0 ) { max = mainArray[ count ]; imax = count; } } return imax; } //function of random filling void inputRandom() { printf( "\nRange fill with random numbers from 0.1 to 1000.\n" ); //randome filling part srand( time( 0 ) ); for( int count = 0; count < number; count++ ) { mainArray[ count ] =(float)rand() / RAND_MAX * ( 1000 - 0.1 ) + 0.1; } outputOfArray(); } //function of filling by keyboard void inputKeyboard() { printf( "Enter the array elements :\n" ); for( int count = 0; count < number; count++ ) { scanf( "%f", &mainArray[ count ] ); //checking for null if( mainArray[ count ] == 0 ) { printf("You type a number 0. Please perform the re-entry.\n"); return; } } outputOfArray(); } //output of array void outputOfArray() { printf( "\nFinal output of array:\n" ); for( int count = 0; count < number; count++ ) { printf( "%.2f ", mainArray[ count ] ); } }