鱼C论坛

 找回密码
 立即注册
查看: 3392|回复: 18

寻找最大元素

[复制链接]
发表于 2014-2-20 22:30:50 | 显示全部楼层 |阅读模式
20鱼币
写一个程序,从键盘输入一篇英文文章,查找每一句的最大元素,在该元素

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





求高手

最佳答案

查看完整内容

不要意思,刚才贴的格式不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[MAX_CHAR_PER_SENTENCE];
        char output_sentence[MAX_CHAR_PER_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[i]) != EOF) {
                if( sentence[i] != '.' ) ++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[max_index];
        while( input[i] != '.' ) {
                if( input[i] > max ) {
                        max_index = i;
                        max = input[i];
                }
                ++i;
        }
        mid = max_index + 1;//最大元素后面
        //拷贝最大元素之前
        strncpy( output, input, mid );
        output[mid]=0;
        //标记
        strcat( output, "(max)" );
        //拷贝最大元素之后
        strcat( output, input+mid );

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 08:12:29 | 显示全部楼层
读文件,保存文件,比较句子,确实有点挑战。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 10:37:59 | 显示全部楼层
这有一个比较笨的方法, 找一句中的最大元素, 找到一句的结束, 把这句放到一个vector里面,遍历修改就可以了,  要是一个单词, 就把一句话按空格分割一次放到vector,遍历查找修改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 11:03:35 | 显示全部楼层
最大元素的定义是什么?  什么叫最大元素 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 11:04:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 11:08:27 | 显示全部楼层
zhaopengfei 发表于 2014-2-21 11:04
你好像什么都会啊 大神、。。。。

我是骗积分的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 11:13:55 | 显示全部楼层
oggplay 发表于 2014-2-21 11:08
我是骗积分的

有这个嫌疑   不过还是有点实力的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 12:47:46 | 显示全部楼层
骗分的~~~:funk::funk::funk::funk:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-21 12:49:12 | 显示全部楼层
soldier 发表于 2014-2-21 10:37
这有一个比较笨的方法, 找一句中的最大元素, 找到一句的结束, 把这句放到一个vector里面,遍历修改就可以 ...

能给个代码吗:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-21 12:50:01 | 显示全部楼层
oggplay 发表于 2014-2-21 08:12
读文件,保存文件,比较句子,确实有点挑战。。。

求帮助a:shy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 17:39:53 | 显示全部楼层
oggplay 发表于 2014-2-21 08:12
读文件,保存文件,比较句子,确实有点挑战。。。

→_→纳尼读文件????这还需要文件操作???←_←
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 18:26:27 | 显示全部楼层
本帖最后由 oggplay 于 2014-2-21 18:28 编辑
牡丹花下死做鬼 发表于 2014-2-21 17:39
→_→纳尼读文件????这还需要文件操作???←_←

不读到内存怎么操作——《》—— 其实楼主的意思是从硬盘读取一个文件 然后修改 保存到硬盘:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 18:49:21 | 显示全部楼层
oggplay 发表于 2014-2-21 18:26
不读到内存怎么操作——《》—— 其实楼主的意思是从硬盘读取一个文件 然后修改 保存到硬盘

→_→不知道是谁理解错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[MAX_CHAR_PER_SENTENCE];
        char output_sentence[MAX_CHAR_PER_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[i]) != EOF) {
                if( sentence[i] != '.' ) ++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[max_index];
        while( input[i] != '.' ) {
                if( input[i] > max ) {
                        max_index = i;
                        max = input[i];
                }
                ++i;
        }
        mid = max_index + 1;//最大元素后面
        //拷贝最大元素之前
        strncpy( output, input, mid );
        output[mid]=0;
        //标记
        strcat( output, "(max)" );
        //拷贝最大元素之后
        strcat( output, input+mid );

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-21 20:01:21 | 显示全部楼层
仰望天上的光 发表于 2014-2-21 19:22
不要意思,刚才贴的格式不对

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

QQ图片20140710195859.jpg

只能到第一个句号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-21 20:11:27 | 显示全部楼层
luckin 发表于 2014-2-21 20:01
谢谢哈
不过编译时有点小问题

因为你的第二句没有句号,不是一个句子。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-2-21 20:43:51 | 显示全部楼层
仰望天上的光 发表于 2014-2-21 20:11
因为你的第二句没有句号,不是一个句子。

厉害:victory:
完美运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-22 10:53:58 | 显示全部楼层
路过看看= =!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表