字符数 组 输出时没反应 怀疑是'\0'判断有问题


#include<stdio.h>
#include<string.h>
void main()
{
char a[80],c;
int i;
printf("Input a character:");
scanf("%c",&c);
    if(1)
    {
        printf("Input a string:");
        for(i=0;i<80;i++)
        {
            gets(a);
            if(a[i]=='\r')break;
        }

    printf("index=%d",i);
    }
    else
    {
        printf("Not Found");
    }

}

题目
输入一个字符,再输入一个以回车结束的字符串(少于80 个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0 开始);否则输出“Not Found”。

【输入形式】

输入一个字符和一个以回车结束的字符串

【输入输出样例1】(下划线部分表示输入)

Input a character:m

Input a string:programming

index=7

现象是输出结果时没反应

img

整个不对
if(1)
这里你想写 while (1)

#include <stdio.h>
#include <string.h>

int main() {
    char c;
    char str[81];
    int max_index = -1;

    printf("请输入一个字符:");
    scanf("%c", &c);
    printf("请输入一个字符串(少于80个字符):");
    scanf("%s", str);

    for (int i = 0; i < strlen(str); i++) {
        if (str[i] == c) {
            max_index = i;
        }
    }

    if (max_index >= 0) {
        printf("%c在字符串中所对应的最大下标为:%d\n", c, max_index);
    } else {
        printf("Not Found\n");
    }

    return 0;
}