这个哪里错了

2025-04-26 00:06:24
推荐回答(3个)
回答1:

错误很多,参见注释:
#include
#include
using namespace std;
void strlen(string);// 函数原型少一个参数
void revers(string);// 函数原型少一个参数
void main(){
string s,m;
int len;
cin>>s;
cout< cin>>m;
cout< cin>>len;
strlen(s,len);
revers( m,len);

}
void strlen(string s,int len){
char ch[len];// 数组的元素个数不能是变量,动态数组分配格式错误
for(int i=0;icout>>ch[i]>>endl;// 如果是输出,用<<而不是.>>,但是该数组未初始化
//如果是输入,用cin,并且后面>>endl错误
}

void revers(string m,int n)
{
strlen(m,n);
char ch[n];// 同上一个函数,数组声明错误
for(int i=0;i {// 这里使用该数组未初始化
char temp=ch[i];
ch[i]=ch[len-i-1];
ch[len-i-1]=temp;
}
cout<}

回答2:

你的 i 是定义在 for 循环里的,最后的 cout<

回答3:

你这个程序,可以先对m,n,k,s 赋初值0.
程序得不到的结果的主要原因是,
if(i%j==0)
k++;
if(k==0)
由于 k 值使用了++ , 所以只要if(i%j==0) 条件成立一次,那么k值就加了1 .
这就使得 if(k==0) 这个条件中k==0 一直都不会成立,从而程序运行得不到结果.
希望对你有点帮助
另外,站长团上有产品团购,便宜有保证