有关c语言,c++的问题

第一个题显示break出错了,不知道怎么改

img


第二个题目程序看着没什么问题,为什么输出不出来呢

img

img


求指导!

第二题判断改为 str[i-1]!='\n'

修改如下,供参考:

//第一题
#include <stdio.h>
int main()
{
    char str[1000] = { 0 };
    int  i = 0, j = 0, k;
    printf("请输入字符串:");

    for (i = 0; (str[i] = getchar()) != '\n'; i++, j++); //修改
    
    printf("\n判断是否回文:");
    for (i = 0, k = 1; i < j; i++) {     //修改
        if (str[i] != str[j - i - 1]) {  //修改
            k = 0;                       //修改
            break;
        }
    }
    switch (k)
    {
    case 1:printf("YES\n"); break;
    case 0:printf("NO\n");  break;
    default:
        break;
    }
    return 0;
}



//第二题
#include <stdio.h>
int main()
{
    char str[1000] = { 0 }, a[1000] = {0};
    int  i, j, k;
    printf("请输入字符串:");

    for (i = 0, j = 0; (str[i] = getchar()) != '\n'; i++, j++); //修改

    for (i = 0, k = 0; i <= j; i++) {    
        if (str[i] != ' ')   
            a[k++] = str[i];        
    }
    //a[k+1] = 0;               // 修改
    printf("\n输出字符串");
    puts(a);
    return 0;
}