程序出错 出现subscript requires array or pointer type
解决时间 2021-02-18 19:37
- 提问者网友:骑士
- 2021-02-18 14:43
include
#include
main()
{
char s[100],ch;
int a=0,b=0,top,i=0;
char *t;
printf("请输入字符串,并以'#'结束!");
gets(s);
top=strlen(s)-2;
t=s;
ch=*s;
while(ch!='#'&&top>=0)
{
if(*(t+top)==ch[i])
{a++;
i++;}
top--;
b++;
}
if(a==b)
printf("该字符串为回文!");
else
printf("该字符串不是回文!");
}
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-02-18 15:28
因为你声明时char ch; ch为字符而不是字符数组,因此在语句if(*(t+top)==ch[i])中ch[i]是不正确的
应该改为s[i];
全部回答
- 1楼网友:街头电车
- 2021-02-18 15:54
#include "stdio.h"
#define num 10
int search (int value[],int key,int low,int high);
void main ()
{
int value[num],result,key;
int i;
for (i=0;i<num;i++)
scanf ("%d",&value[i]);
printf ("\n enter a key:");
scanf ("%d",&key);
result=search(value,key,0,num-1);
if (result!=-1)
printf ("\nelement %d is at pos:%d\n",key,result);
else printf ("\n fail to find %d\n",key);
}
int search (int value[],int key,int low,int high)
{
int mid;
if (low>high)
return -1;
mid=((low+high)/2);
if ( value[mid]==key )
return mid;
if ( key<value[mid] )
return search (value,key,low,mid-1);
else return search (value,key,mid+1,high);
}
其他地方没什么问题,只是把你的输出方式小小改动了下。。。
我要举报
大家都在看
推荐资讯