哪里错了呀,不会写,教我一下

2、输入一个由5位数字组成的字符串,将其每一位数字经过函数𝐟(𝐱)=(𝐱−𝟑)𝟐−𝟏后,使用直接选择排序法从小到大排序后输出。(10分)程序示例:请输入5位数字字符串:97146 转换并排序后是:0 3 8 15 35


```c
#include<stdio.h>
int main()
{
  char a[5];
  int i,j;
  int temp;
  scanf("%d",a);
  for(i=0;i<5;i++)
  {

      a[i]=(a[i]-3)*(a[i]-3)-1;

  }

  for(i=0;i<5;i++)
  {
      for(j=0;j<4;j++)
      {
          if(a[j]>a[j+1])
          {
              temp=a[j];
              a[j]=a[j+1];
              a[j+1]=temp;

          }
      }
  }
  for(i=0;i<5;i++)
    printf("%d ",a[i]);
  return 0;
}


```

a[i]算出来就是不对


#include <stdio.h>
int main()
{
    int a[5];
    int i, j;
    int temp;
    for(i = 0;i < 5;i++){
        char c = getchar();
        a[i] = c - '0';
    }
    for (i = 0; i < 5; i++)
    {
        a[i] = (a[i] - 3) * (a[i] - 3) - 1;
    }
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (i = 0; i < 5; i++)
        printf("%d ", a[i]);
    return 0;
}


#include<stdio.h>
int main()
{
  int a[5];
  char b[6];
  int i,j;
  int temp;
  //字符串接收
  scanf("%s",b);
  for(i=0;i<5;i++)
  {
      //字符串每一位转成数字存到数字数组中
      a[i]=(b[i]-'0'-3)*(b[i]-'0'-3)-1;
  }
  for(i=0;i<5;i++)
  {
      for(j=0;j<4;j++)
      {
          if(a[j]>a[j+1])
          {
              temp=a[j];
              a[j]=a[j+1];
              a[j+1]=temp;
          }
      }
  }
  for(i=0;i<5;i++)
    printf("%d ",a[i]);
  return 0;
}


#include<stdio.h>
int main()
{
    char a[5] = {};
    int b[5];
    int i, j;
    int temp;

    for (i = 0; i < 5; i++)
    {
        scanf("%c", &a[i]);
        b[i] = (a[i] - '0' - 3) * (a[i]- '0' - 3) - 1;
    }
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (b[j] > b[j + 1])
            {
                temp = b[j];
                b[j] = b[j + 1];
                b[j + 1] = temp;
            }
        }
    }
    for (i = 0; i < 5; i++)
        printf("%d ", b[i]);
    return 0;
}