Đề bài:
Viết một hàm đệ quy in ra tiếng thứ N trong câu. Nếu N lớn hơn số tiếng hay N nhỏ hơn 1 thì in ra -1
Vd như: Viet Nam vo dich , N=3 -> cout ra la “vo”
Mình code thế này, nhưng mà chữ cuối thì nó không in ra được, mọi người giúp mình với …
#include <iostream>
using namespace std;
void Nword(char* initialString, int position){
int length=0, thutu=1;
while(initialString[length]!='\0')
{
if(initialString[length]==' ') thutu++;
length++;
}
if(position>thutu || position<1) cout << -1;
if(position == 1)
{
int j=0;
while(initialString[j]!=' ' && initialString[j]!='\0') cout << initialString[j++];
return;
}
{
char *s2= new char[length];
int j=0,k=0;
for(int i=0; i<length; i++)
{
if(initialString[i]==' ')
{
k=i+1;
break;
}
}
for(int i=k; i<length; i++)
{
s2[j++]=initialString[i];
}
s2[j]='\0';
initialString=s2;
Nword(initialString,position-1);
}
}
int main() {
char s[] = "Viet Nam vo dich haha";
Nword(s,4);
return 0;
}
System vẫn chấm mình làm sai rồi … mặc dù mình đã in được chữ cuối rồi
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?