翻译短语并用c

时间:2015-10-08 18:58:55

标签: c

我的编程老师已经为练习发了一些练习,而这个我不知道如何解决它。

在他的例子中,他问:编写一个程序,获取一个短语或一个单词,然后将其向后转,并将其写得奇怪。

我正在尝试使用短语“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(和英语)的新手,所以,如果你们中的任何一个人能给我一个继续前进的方法,我会非常感激。

编辑:我相信我对我选择作为例子的短语并不满意,所以我改变了它。

1 个答案:

答案 0 :(得分:0)

在没有准确告诉您编写代码的情况下,因为您正在寻求学术工作方面的帮助,您可以试试这个:

  1. 阅读一行文字。
  2. 使用行的长度(scanf返回一个带有读取的字符数的int,如果我没有弄错的话),向后循环,一次打印每个字符。登记/> 要尝试的东西是这样的:

     //This is pseudocode. Do not copy/paste
     for(int i = length of line; i > 0; i--) {
         print out line[i];
     }
    
  3. 然后将长度除以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];
    }
    
  4. ????
  5. 利润
  6. 显然,你必须在这里和那里调整一些东西。例如,i = length of line会导致运行时错误,但您可以在这里学习,我相信通过实践来学习。