2 xyhqqlove xyhqqlove 于 2016.01.25 09:25 提问

C语言哪里错了?帮我改改吧

#include
#include

char s[100];
int panduan()
{
int n=strlen(s);
int i;
for(i=0;i<n/2;i++)
{
if (s[i]!=s[n-i])
return 0;
}
return 1;
}
void main()
{
scanf("%s",&s);
if (panduan())
printf("yes");
else
printf("no");
}

6个回答

caozhy
caozhy   Ds   Rxr 2016.01.25 09:41
 #include <stdio.h>
#include <string.h>

char s[100];
int panduan()
{
    int n=strlen(s);
    int i;
    for(i=0;i<n/2;i++)
    {
        if (s[i]!=s[n-i-1]) //修改
            return 0;
    }
    return 1;
}
void main()
{
scanf("%s",&s);
if (panduan())
printf("yes");
else
printf("no");
}
qq_27183003
qq_27183003   Ds   Rxr 2016.01.25 10:16

综合楼上两位即可:

 #include <stdio.h>
#include <string.h>
char s[100];
int panduan()
{
    int n=strlen(s);
    int i;
    for(i=0;i<n/2;i++)
    {
        if (s[i]!=s[n-i-1])//修改
            return 0;
    }
    return 1;
}
void main()
{
    scanf("%s",s);//修改
    if (panduan())
        printf("yes");
    else
        printf("no");
}
hanxing930214
hanxing930214   2016.01.25 09:46

s 为数组 取数组地址相当于数组指针,二scanf的第二个参数需要的是指针,数组名字就是首地址,所以scanf改成sanf(“%s”,s);就可以了。

hanxing930214
hanxing930214   2016.01.25 09:45

s 为数组 取数组地址相当于数组指针,二scanf的第二个参数需要的是指针,数组名字就是首地址,所以scanf改成sanf(“%s”,s);就可以了。

91program
91program   Ds   Rxr 2016.01.25 10:01

对数组名取地址,其实还是数组名!这个没有错的。

if (s[i]!=s[n-i]) 当 i 等于 零 时,对于数组来说已经越界了。所以,需要注意!

John_ToStr
John_ToStr   Rxr 2016.01.25 17:48

scanf("%s",&s); 改为 scanf("%s",s);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
帮我改改这个程序吧
  请高手们帮我看看我写的这个程序吧,无法运行,总是出错。。。我是初学者,感觉这些东西好难哦。。。拜托各位了。。。 链栈的实现,包括基本操作。#include using namespace std;template struct Node { T date; Node*next;}; template class LinkStack{
谁能帮我改一下哪里错了
-
用c语言编的题 帮我改改吧
的格式别忘记了|||h x);printf("y=%d" &f);y=f/2-h;x=2h-f/2;printf("x=%d" &h f=%d" f=");scanf("h=%d f;printf("请输入鸡和兔子的头数腿数h= h y 算法错误 给你举个例子:h=30 b);} a &f);b=(f-h*2)/2;a=h-b;printf("%d %d" &h
哪里错了
不知道哪里错了 请教一下~    输入一组数组反序输出~用的是外部变量  #include "stdio.h"  int a[10]; int  fd(int b[10]); {int i;    for (i=0;i  a[9-i]=b[i];        }    main(){int j,p,a[10]; for(j=0;j scanf ("%d",&a[j]); fd(a
这几句哪里错了呢?C语言
<br />       TCHAR str3[256];<br />      <br />      int Index = ListBox_GetCurSel(hwndlist);<br />      ListBox_GetText(hwndlist,Index,str3);<br />      SetDlgItemText(hwnd,IDC_EDTMUSIC,str3);<br />我是想把列表框的值单击后放到编辑框去,可是单击后没反应,为什么啊,是不是获得索引用的有误呢?请大家帮帮忙啊1<br
各个高手帮我看一下我的asp文件,哪里错了
-
我哪里错了?
编程之美——传话游戏 描述 Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不能让其他人听到,也不能使用肢体动作来解释。最后,Bob把他所听到
到底哪里错了
AH01071: Got error 'PHP message: PHP Fatal error: Call to a member function row_array() on a non-object in /www/XXXXXXXXXXXXXXXX/model.php on line 424\n'424行的语句是:function is_followed($cid, $uid) { ...
这个程序哪里错了
getch();要写成_getch(); |||程序没有问题scanf("a=%d b=20 这个程序也没错 &c); &b &a &c);更改为scanf("%d%d%d" &b &a c=%d" b=%d c=1回车|||scanf("a=%d b=2 &c);输入数的时候注意下就行了输入:a=3 &b &a c=%d" b=%d c=30这样
C#哪里错了
这是典型的C语言代码答案补充scanf("%d/n%d/n" &b);这里不能出现/n这种换行符答案补充getch()后面没有写分号 &a 朋友