我的编程老师已经为练习发了一些练习,而这个我不知道如何解决它。
在他的例子中,他问:编写一个程序,获取一个短语或一个单词,然后将其向后转,并将其写得奇怪。
我正在尝试使用短语“ABCDE”向后写,然后开始从中间写短语。
最后,他想要这样的东西:CBAED
到目前为止,所有这些都是向后的短语/单词,如:EDCBA
嗯,这是我目前的代码:
#include <stdio.h>
void inverter();
int main(){
printf("sentence to revert: ");
inverter();
return 0;
}
void inverter(){
char letra;
scanf("%c",&letra);
if( letra != '\n'){
inverter();
printf("%c",letra);
}
}
正如你们所见,我是C(和英语)的新手,所以,如果你们中的任何一个人能给我一个继续前进的方法,我会非常感激。
编辑:我相信我对我选择作为例子的短语并不满意,所以我改变了它。
答案 0 :(得分:0)
在没有准确告诉您编写代码的情况下,因为您正在寻求学术工作方面的帮助,您可以试试这个:
使用行的长度(scanf
返回一个带有读取的字符数的int,如果我没有弄错的话),向后循环,一次打印每个字符。登记/>
要尝试的东西是这样的:
//This is pseudocode. Do not copy/paste
for(int i = length of line; i > 0; i--) {
print out line[i];
}
然后将长度除以2并反向运行两个循环,一个从中间开始:
//This is Psuedocode. Do not copy/paste
for(int i = middle of line; i > 0; i--) {
print out line[i];
}
然后另一个从最后开始:
//This is Pseudocode. Do not copy/paste
for(int i = length of line; i > middle of line; i--) {
print out line[i];
}
显然,你必须在这里和那里调整一些东西。例如,i = length of line
会导致运行时错误,但您可以在这里学习,我相信通过实践来学习。