luckin 发表于 2014-2-20 22:30:50

寻找最大元素

写一个程序,从键盘输入一篇英文文章,查找每一句的最大元素,在该元素

后面插入字符串“(max)”。 例:输入abc.fed. 输出abc(max).f(max)ed.





求高手

仰望天上的光 发表于 2014-2-20 22:30:51

不要意思,刚才贴的格式不对#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define MAX_CHAR_PER_SENTENCE 200
int get_sentence(char* sentence);
void convert( char* input, char* output );


int main() {
        char input_sentence;
        char output_sentence;
        while( get_sentence(input_sentence) ) {
                convert( input_sentence, output_sentence );
                printf("%s", output_sentence);
                //printf( "%s\n", input_sentence );
        }
}

int get_sentence(char* sentence) {
        int i = 0;
        while( scanf("%c",&sentence) != EOF) {
                if( sentence != '.' ) ++i;
                else {
                        sentence[++i] = 0;
                        return 1;
                }
        }
        return 0;
}

void convert( char* input, char* output ) {
        //找句子最大元素偏移量
        int i = 0, max_index = 0, mid;
        char max = input;
        while( input != '.' ) {
                if( input > max ) {
                        max_index = i;
                        max = input;
                }
                ++i;
        }
        mid = max_index + 1;//最大元素后面
        //拷贝最大元素之前
        strncpy( output, input, mid );
        output=0;
        //标记
        strcat( output, "(max)" );
        //拷贝最大元素之后
        strcat( output, input+mid );

}

oggplay 发表于 2014-2-21 08:12:29

读文件,保存文件,比较句子,确实有点挑战。。。

soldier 发表于 2014-2-21 10:37:59

这有一个比较笨的方法, 找一句中的最大元素, 找到一句的结束, 把这句放到一个vector里面,遍历修改就可以了,要是一个单词, 就把一句话按空格分割一次放到vector,遍历查找修改。

zhaopengfei 发表于 2014-2-21 11:03:35

最大元素的定义是什么?什么叫最大元素 ?

zhaopengfei 发表于 2014-2-21 11:04:20

oggplay 发表于 2014-2-21 08:12 static/image/common/back.gif
读文件,保存文件,比较句子,确实有点挑战。。。

你好像什么都会啊 大神、。。。。

oggplay 发表于 2014-2-21 11:08:27

zhaopengfei 发表于 2014-2-21 11:04 static/image/common/back.gif
你好像什么都会啊 大神、。。。。

我是骗积分的

zhaopengfei 发表于 2014-2-21 11:13:55

oggplay 发表于 2014-2-21 11:08 static/image/common/back.gif
我是骗积分的

有这个嫌疑   不过还是有点实力的

akon 发表于 2014-2-21 12:47:46

骗分的~~~:funk::funk::funk::funk:

luckin 发表于 2014-2-21 12:49:12

soldier 发表于 2014-2-21 10:37 static/image/common/back.gif
这有一个比较笨的方法, 找一句中的最大元素, 找到一句的结束, 把这句放到一个vector里面,遍历修改就可以 ...

能给个代码吗:cry

luckin 发表于 2014-2-21 12:50:01

oggplay 发表于 2014-2-21 08:12 static/image/common/back.gif
读文件,保存文件,比较句子,确实有点挑战。。。

求帮助a:shy:

牡丹花下死做鬼 发表于 2014-2-21 17:39:53

oggplay 发表于 2014-2-21 08:12 static/image/common/back.gif
读文件,保存文件,比较句子,确实有点挑战。。。

→_→纳尼读文件????这还需要文件操作???←_←

oggplay 发表于 2014-2-21 18:26:27

本帖最后由 oggplay 于 2014-2-21 18:28 编辑

牡丹花下死做鬼 发表于 2014-2-21 17:39 static/image/common/back.gif
→_→纳尼读文件????这还需要文件操作???←_←
不读到内存怎么操作——《》—— 其实楼主的意思是从硬盘读取一个文件 然后修改 保存到硬盘:big

牡丹花下死做鬼 发表于 2014-2-21 18:49:21

oggplay 发表于 2014-2-21 18:26 static/image/common/back.gif
不读到内存怎么操作——《》—— 其实楼主的意思是从硬盘读取一个文件 然后修改 保存到硬盘

→_→不知道是谁理解错了

仰望天上的光 发表于 2014-2-21 19:21:13

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define MAX_CHAR_PER_SENTENCE 200
int get_sentence(char* sentence);
void convert( char* input, char* output );


int main() {
        char input_sentence;
        char output_sentence;
        while( get_sentence(input_sentence) ) {
                convert( input_sentence, output_sentence );
                printf("%s", output_sentence);
                //printf( "%s\n", input_sentence );
        }
}

int get_sentence(char* sentence) {
        int i = 0;
        while( scanf("%c",&sentence) != EOF) {
                if( sentence != '.' ) ++i;
                else {
                        sentence[++i] = 0;
                        return 1;
                }
        }
        return 0;
}

void convert( char* input, char* output ) {
        //找句子最大元素偏移量
        int i = 0, max_index = 0, mid;
        char max = input;
        while( input != '.' ) {
                if( input > max ) {
                        max_index = i;
                        max = input;
                }
                ++i;
        }
        mid = max_index + 1;//最大元素后面
        //拷贝最大元素之前
        strncpy( output, input, mid );
        output=0;
        //标记
        strcat( output, "(max)" );
        //拷贝最大元素之后
        strcat( output, input+mid );

}

luckin 发表于 2014-2-21 20:01:21

仰望天上的光 发表于 2014-2-21 19:22 static/image/common/back.gif
不要意思,刚才贴的格式不对

谢谢哈
不过编译时有点小问题



只能到第一个句号

仰望天上的光 发表于 2014-2-21 20:11:27

luckin 发表于 2014-2-21 20:01 static/image/common/back.gif
谢谢哈
不过编译时有点小问题



因为你的第二句没有句号,不是一个句子。

luckin 发表于 2014-2-21 20:43:51

仰望天上的光 发表于 2014-2-21 20:11 static/image/common/back.gif
因为你的第二句没有句号,不是一个句子。

厉害:victory:
完美运行

未闻丶花名 发表于 2014-2-22 10:53:58

路过看看= =!
页: [1]
查看完整版本: 寻找最大元素