このプログラムは、ASCII 値から 97 を引いて、char 配列 (文字列) を int 配列に変換することになっています (ASCII 値が 97 であるため、入力は小文字でなければなりません)。したがって、文字列 abcd を入力すると、0123 が返されるはずですが、代わりに 012134513789 が返されます。どこに問題があるのかわかりません。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
void userEnter(int*pattern, int n);
int main(void)
{
int n, i;
printf("What is the length of the array: ");
scanf("%d",&n);
int pattern[n];
printf("Enter the char array: ");
userEnter(pattern, n);
printf("The int array is: ");
for(i=0;i<n;i++)
{
printf("%d",pattern[i]);
}
printf("\n");
}
void userEnter(int*pattern, int n)
{
char input[n];
scanf("%s", input);
int i;
for(i = 0; i < n-1; i++)
{
pattern[i] = input[i]-97;
}
}