//主函数中输入一个字符串。通过自定义函数判断此字符串是否回文

#include<stdio.h>inthw(intf[25]){inta,b;while(a>b){if(f[a++]!=f[b--]){printf("No!\n")... #include<stdio.h>
int hw(int f[25])
{
int a,b;
while(a>b)
{
if(f[a++]!=f[b--])
{
printf("No!\n");
}
else
{
printf("Yes!\n");
return 0;
}

}

}
void main()
{
int f[25],HW,a,b=0;
scanf("%s",&f);
HW=hw(f);

}
怎么改 ?
展开
 我来答
陈志强661224
2010-12-17 · TA获得超过394个赞
知道答主
回答量:176
采纳率:0%
帮助的人:246万
展开全部
scanf("%s",&f);
改为
scanf("%s",f);

f已经表示数组的首地址了
你的f怎么是int型的 好歹也要char型的呀
char f[25];
你的子函数 int a,b;
a跟b都没有初始化
a=0,b=strlen(f)-1吧

算了 还是贴出完整程序吧 希望您可以慢慢研究

#include<stdio.h>
#include<string.h>
int hw(char f[25]) {
int a, b;
a = 0; //初始化a 指向f的首地址
b = strlen(f)-1; //指向f的最后一个
while (a <= b) {
if (f[a++] != f[b--]) {
printf("No!\n");
return 0; //程序结束
}

}
printf("Yes!\n");
return 1; //a>=b 是正确的

}
int main() {
char f[25];
int HW;// a, b = 0; 不需要
scanf("%s", f);
HW = hw(f);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式