这段代码试图从字符串中删除指定字符,但存在几个关键问题。
首先,`int a[m]={0};` 这一行有问题。`m` 初始为0,所以数组 `a` 的大小是0,无法存储任何字符。而且C语言中不允许用变量定义数组大小(除非使用变长数组,但这里 `m=0` 导致数组长度为0,不合理)。另外,`a[n]!='\n'` 和 `a[n]!='.'` 的检查也不正确,因为 `a` 数组是空的,访问 `a[n]` 会导致未定义行为。
其次,`scanf("%s",&n);` 这一行错误。`n` 被声明为 `char` 类型,但 `%s` 用于读取字符串,应该用 `%c` 读取单个字符,并且不需要取地址符 `&`(因为数组名本身就是地址,但这里 `n` 是单个字符变量)。
- 提示1:检查数组 `a` 的定义方式。你需要一个足够大的数组来存放结果,而不是用变量 `m` 来定义大小。考虑用固定大小或动态分配。
- 提示2:检查 `scanf` 的格式说明符和参数类型。`n` 是 `char` 类型,应该用 `%c` 读取一个字符,并且注意 `%c` 会读取空白字符,可能需要处理输入缓冲区中的换行符。