Почему моя кодировка останавливается после печати "Введите a для выровненного или i для отступа"?
Я уже пытался отделить код, как способ чтения / обработки кода, и спросил мойдрузья, которые также находятся в этом классе, что я делаю неправильно .... пожалуйста, помогите
#include <stdio.h>
#include<stdlib.h>
#define MaxSize 1024
void split(char array[], int start, int length);
void splitAndMove(char array[], int start, int length);
int main(){
int n,i;
char ch;
char string[MaxSize];
printf("Enter the number of character:\n");
scanf("%d", &n);
printf("Enter the character array:\n");
fflush(stdin);
for(i = 0;i < n;i++){
scanf("%c", &string[i]);
printf("Enter a for aligned or i for indented:\n");
fflush(stdin);
scanf("%c", &ch);
if(ch == 'a')
split(string, 0, n);
else if(ch == 'i')
splitAndMove(string, 0, n);
return 0;
}
}
void split(char array[], int start, int length){
if (start >= length){
return;
}
printf("*%c*\n", array[start]);
split(array, start+1, length);
}
void splitAndMove(char array[], int start, int length){
int i;
if(start >= length){
return;
}
for(i = 0; i <= start;i++){
printf(" ");
}
printf("*%c*\n", array[start]);
splitAndMove(array, start+1, length);
}
Я должен ожидать, что результат будет выглядеть так:
*H*
*E*
*L*
*P*
, когда я введуи:
*H*
*E*
*L*
*P*
при вводе а