Create Sorter Andrin.c

This commit is contained in:
romanschenk37 2022-03-23 16:29:32 +01:00 committed by GitHub Enterprise
parent 4627d6994a
commit 2d00a6caf5
1 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,120 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void printArray(char[10][20]);
void bubbleSort(char[10][20],size_t size);
int readIn(char[],char[10][20]);
void makeUpper(char[]);
int main() {
char array[10][20];
for(int i=0;i<10;i++) {
char newLine[21];
printf("Insert Word: ");
fgets(newLine,20,stdin);
while(getchar() != '\n'){}
makeUpper(newLine);
if(readIn(newLine,array) == 0) {
return 0;
}else if(readIn(newLine,array) == 1){
strncpy(array[i],newLine,20);
}
}
bubbleSort(array,10);
printArray(array);
return 0;
}
int readIn(char word[],char array[10][20]) {
if(strcmp(word,"ZZZ\n") == 0) {
return 0;
}
for(int i = 0; i < 10;i++) {
if(strcmp(word,array[i]) == 0){
return 2;
}
}
return 1;
}
void makeUpper(char newLine[]) {
for (int i = 0; i < newLine[i]!='\0'; i++) {
if(newLine[i] >= 'a' && newLine[i] <= 'z') {
newLine[i] = newLine[i] - 32;
}
}
}
void printArray(char array[10][20]) {
for(int i=0;i<10;i++) {
printf("At %d: %s\n",i,array[i]);
}
}
void bubbleSort(char array[10][20],size_t size) {
for(int i = 0; i < size-1;i++){
for(int j = 0; j < size-i-1;j++){
char word1[20];
char word2[20];
strcpy(word1,array[j]);
strcpy(word2,array[j+1]);
int position = 0;
while(word1[position] == word2[position]) {
position++;
}
int w1 = word1[position];
int w2 = word2[position];
if(w1 > w2) {
char tmp[20];
strcpy(tmp,word1);
strcpy(array[j],word2);
strcpy(array[j+1],tmp);
}
}
}
}
void bubbleSortPointer(char array[10][20],size_t size){
for(int i = 0; i < size-1;i++){
for(int j = 0; j < size-i-1;j++){
char word1[20];
char word2[20];
strcpy(word1,array[j]);
strcpy(word2,array[j+1]);
int position = 0;
while(word1[position] == word2[position]) {
position++;
}
int w1 = word1[position];
int w2 = word2[position];
if(w1 > w2) {
char tmp[20];
strcpy(tmp,word1);
strcpy(array[j],word2);
strcpy(array[j+1],tmp);
}
}
}
}