下标要求数组或指针类型:

#include<iostream>#include<math.h>usingnamespacestd;charF(chars){inti,j,t;chars1[20];... #include <iostream>
#include <math.h>
using namespace std;
char F(char s)
{
int i,j,t;
char s1[20];
char c;
t=strlen(s);
for(i=0;s[i]!='\0';i++)
for(j=t-1;j>=0;j--)
s1[j]=s[i];
puts(s1);
}
main()
{
char s[20],s1[20];
gets(s);
s1=F(s);
puts(s1);
}
怎么修改呢?
#include <iostream>
#include <math.h>
using namespace std;
char F(char s[])
{
int i,j;
char s1[20];
for(i=0,j=strlen(s)-1;s[i]!='\0',j>=0;i++,j--)
s1[j]=s[i];
for(i=0;s1[i]!='\0';i++)
cout<<s1;
return 0;
}
main()
{
char s[20];
gets(s);
F(s);
cout<<s<<endl;
}
修改过后,还是在调试的还是对的,但后面还出现了一大堆乱七八糟的东西。
展开
 我来答 举报
ObjectiveSS
2010-12-08
知道答主
回答量:26
采纳率:100%
帮助的人:13.6万
展开全部
#include <iostream>
#include <math.h>
using namespace std;
char F(char s)//这里不能是字符类型 , 因为strlen(读取的是字符串)
{
int i,j,t;
char s1[20];
char c;
t=strlen(s);
for(i=0;s[i]!='\0';i++) //这里报错下标要求数组或者指针类型(因为你的s根本就是一个字符)
for(j=t-1;j>=0;j--)
s1[j]=s[i];//同上
puts(s1);
}
main()
{
char s[20],s1[20];
gets(s);
s1=F(s);//你的s1是字符串,可是返回值确实字符
puts(s1);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式