帮我看看我的代码问题在哪里吧?

帮我看看吧,做到数组的题之后一个都没有输出成功过。代码啥也输出不出来。

img

img

img

img


#include <stdio.h>
#include <string.h>
int main(void)
{
    /*********Begin*********/
    int i,j,t,max,min;
    char a[100],b[100];
      scanf("%s\n",&a[100]);
      scanf("%s\n",&b[100]);

      for(i=0;i<100;i++)  /*找出b[100]数组中最大值,并标记其下标*/
      {
        if(b[i]!='\0')
        {
          if(b[i]>t)
          {
            t=b[i];
            max=i;
          }
        }
      }


      for(i=0;i<100;i++)   /*找出a[100]中数组最小值,并标记其下标*/
      {
        if(a[i]!='\0')
        {
          if(a[i]<t)
          {
            t=a[i];
            min=i;
          }
        }
      }
      
      for(j=100;j>min+1;j--)    /*将a[100]数组中min下标以后的字符向后顺移一位*/
        a[j]=a[j-1];

       a[min+1]=b[max];         /*将b[100]中的最大值赋给a[100]中的最小值的后一位*/

       printf("%s",a[100]);     /*输出a[100]数组*/


    /*********End**********/
    return 0;

解答如下

#include<stdio.h>
int main()
{
    char a[100],b[100];
    gets(a);
    gets(b);
    char max=b[0];
    char min=a[0];
    int j,posmin=0;
    for(j=1; a[j]!='\0'; j++)
    {
        if(a[j]<min)
        {
            min=a[j];
            posmin=j;
        }
    }
    for(j=1; b[j]!='\0'; j++)
    {
        if(b[j]>max)
        {
            max=b[j];
        }
    }
    for(j=0; a[j]!='\0'; j++)
    {
        printf("%c",a[j]);
        if(j==posmin)
        {
            printf("%c",max);
        }
    }
    return 1;
}

字符串遍历,找出b中的最大字符,遍历字符a,找出最小字符所在的位置,将a中字符从min位置开始后移1位,将b最大字符插入a[min+1]位置。
代码修改如下:

#include <stdio.h>
#include <string.h>
int main()
{
    /*********Begin*********/
    int i=1,j=1,max=0,min=0;
    char a[100]={0},b[100]={0};
    scanf("%s",a);
    scanf("%s",b);
    while(b[i] != '\0')/*找出b[100]数组中最大值,并标记其下标*/
    {
        if(b[i] > b[max])
            max = i;
        i++;;
    }
    while(a[j] != '\0') /*找出a[100]中数组最小值,并标记其下标*/
    {
        if(a[j]<a[min])
            min = j;
        j++;
    }
    //将a中的数组后移
    for(i=strlen(a);i>min+1;i--)
        a[i] = a[i-1];
    a[min+1] = b[max];
    printf("%s\n",a);
    return 0;
}
    

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632