c++ 从流中c 读取文件单词每一个单词,保证全部小写,放在string数组中。用冒泡升序排序并计算每个单词出现次数

1 用冒泡算法对字符数组中的字符按照ascii编码值大小进行升序排序._百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
1 用冒泡算法对字符数组中的字符按照ascii编码值大小进行升序排序.
我有更好的答案
j & size - 1 - j++)
if (str[j]&gt, j,
size = strlen(str); for (i = 0; i &
str[j] = str[j + 1]void Sort(char
str[j + 1] = i++) {
for (j = 0;str[j+1])
tmp = str[j]; size - 1
不需要头文件?
#include &iostream&#include &string&
采纳率:70%
来自团队:
为您推荐:
其他类似问题
和平分手的相关知识
换一换
回答问题,赢新手礼包浅析C/C++中sort函数的用法
投稿:hebedich
字体:[ ] 类型:转载 时间:
做项目的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。
sort是STL中提供的算法,头文件为#include&algorithm&以及 函数原型如下:
template &class RandomAccessIterator&
void sort ( RandomAccessIterator first, RandomAccessIterator last );
template &class RandomAccessIterator, class Compare&
void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
使用第一个版本是对[first,last)进行升序排序,默认操作符为"&",第二个版本使用comp函数进行排序控制,comp包含两个在[first,last)中对应的值,如果使用"&"则为升序排序,如果使用"&"则为降序排序,分别对int、float、char以及结构体排序例子如下:
#include&stdio.h&
#include&algorithm&
#include&string&
struct product{
char name[16];
int array_int[5]={4,1,2,5,3};
char array_char[5]={'a','c','b','e','d'};
double array_double[5]={1.2,2.3,5.2,4.6,3.5};
//结构比较函数(按照结构中的浮点数值进行排序)
bool compare_struct_float(const product &a,const product &b){
return a.price&b.
//结构比较函数(按照结构中的字符串进行排序)
bool compare_struct_str(const product &a,const product &b){
return string(a.name)&string(b.name);
//打印函数
void print_int(const int* a,int length){
printf("升序排序后的int数组:\n");
for(int i=0; i&length-1; i++)
printf("%d ",a[i]);
printf("%d\n",a[length-1]);
void print_char(const char* a,int length){
printf("升序排序后的char数组:\n");
for(int i=0; i&length-1; i++)
printf("%c ",a[i]);
printf("%c\n",a[length-1]);
void print_double(const double* a,int length){
printf("升序排序后的dobule数组:\n");
for(int i=0; i&length-1; i++)
printf("%.2f ",a[i]);
printf("%.2f\n",a[length-1]);
void print_struct_array(struct product *array, int length)
for(int i=0; i& i++)
printf("[ name: %s \t price: $%.2f ]\n", array[i].name, array[i].price);
puts("--");
void main()
struct product structs[] = {{"mp3 player", 299.0f}, {"plasma tv", 2200.0f},
{"notebook", 1300.0f}, {"smartphone", 499.99f},
{"dvd player", 150.0f}, {"matches", 0.2f }};
//整数排序
sort(array_int,array_int+5);
print_int(array_int,5);
//字符排序
sort(array_char,array_char+5);
print_char(array_char,5);
//浮点排序
sort(array_double,array_double+5);
print_double(array_double,5);
//结构中浮点排序
int len = sizeof(structs)/sizeof(struct product);
sort(structs,structs+len,compare_struct_float);
printf("按结构中float升序排序后的struct数组:\n");
print_struct_array(structs, len);
//结构中字符串排序
sort(structs,structs+len,compare_struct_str);
printf("按结构中字符串升序排序后的struct数组:\n");
print_struct_array(structs, len);
sort函数的用法
做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。
&&& 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。
&&& 拿我出的“AC的策略”这题来说,需要对数组t的第0到len-1的元素排序,就写sort(t,t+len);
&&& 对向量v排序也差不多,sort(v.begin(),v.end());
&&& 排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类string。
&&& 如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数cmp
bool cmp(int a,int b)
return a&b;
&& 排序的时候就写sort(a,a+100,cmp);
&& 假设自己定义了一个结构体node
struct node{
&& 有一个node类型的数组node arr[100],想对它进行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b还相同,就按c降序排列。就可以写这样一个比较函数:
以下是代码片段:
bool cmp(node x,node y)
if(x.a!=y.a) return x.a
if(x.b!=y.b) return x.b&y.b;
return return x.c&y.c;
排序时写sort(arr,a+100,cmp);
qsort(s[0],n,sizeof(s[0]),cmp);
int cmp(const void *a,const void *b)
return *(int *)a-*(int *)b;
一、对int类型数组排序&
int num[100];
int cmp ( const void *a , const void *b )
return *(int *)a - *(int *)b;
qsort(num,100,sizeof(num[0]),cmp);
二、对char类型数组排序(同int类型)&
char word[100];
int cmp( const void *a , const void *b )
return *(char *)a - *(int *)b;
qsort(word,100,sizeof(word[0]),cmp);
三、对double类型数组排序(特别要注意)&
double in[100];
int cmp( const void *a , const void *b )
return *(double *)a & *(double *)b ? 1 : -1;
qsort(in,100,sizeof(in[0]),cmp);
四、对结构体一级排序&
//按照data的值从小到大将结构体排序,关于结构体内的排序关键数据data的类型可以很多种,参考上面的例子写
int cmp( const void *a ,const void *b)
return ((In *)a)-&data - ((In *)b)-&
qsort(s,100,sizeof(s[0]),cmp);
五、对结构体
//按照x从小到大排序,当x相等时按照y从大到小排序
int cmp( const void *a , const void *b )
struct In *c = (In *)a;
struct In *d = (In *)b;
if(c-&x != d-&x) return c-&x - d-&x;
else return d-&y - c-&y;
qsort(s,100,sizeof(s[0]),cmp);
六、对字符串进行排序&
char str[100];
//按照结构体中字符串str的字典顺序排序
int cmp ( const void *a , const void *b )
return strcmp( ((In *)a)-&str , ((In *)b)-&str );
qsort(s,100,sizeof(s[0]),cmp);
七、计算几何中求凸包的cmp&
int cmp(const void *a,const void *b) //重点cmp函数,把除了1点外的所有点,旋转角度排序
struct point *c=(point *)a;
struct point *d=(point *)b;
if( calc(*c,*d,p[1]) & 0) return 1;
else if( !calc(*c,*d,p[1]) && dis(c-&x,c-&y,p[1].x,p[1].y) & dis(d-&x,d-&y,p[1].x,p[1].y)) //如果在一条直线上,则把远的放在前面
else return -1;
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具用指针法编写一个程序,从键盘接收一组数据存放到数组中,用冒泡排序法升序排序_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
用指针法编写一个程序,从键盘接收一组数据存放到数组中,用冒泡排序法升序排序
我有更好的答案
&#include&&&&&0;&&&&&&&&&&&=&head&+&&&&&&&start&++;&&&&&&&&&&n&=&&&&&&&&&&&1;&0)&&&while(scanf(&&&&&&main(){&&&&int&&==&&&&&&&&&&&&&&&&&while(end&nbsp!=&EOF);&&&&&&&&&&{&&&&&&&&&&&&&&&&if(*(start-1)&&&&&bubble(a,&a+n-2);&&&&for(i&=&0;i&&&n-1;++&i)&&&&&&&&printf(&%d&&,a[i]);&&&&return&0;};&&&&&&&&=&}&&&&&&&&if(flag&&&&while(start&&=&&void&&%d&int&*start&=&&&&int&1))&&&&&&&&{&*start)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&*end&stdlib.h&&&&&*(start-1)&nbsp,&&&&&=&*+&1;&&&&int&&&&&nbsp#include&&stdio.h&&a[n++])&;&a[10000],i;&&&&int&&=&0;&&&&&&&&start&&&int&*tail){&=&*(start-1);head&flag&&&&&&&&&&&&=&flag&*(head&+&&&&&&&&&&&&end)&&&=&1;&&&&&&&&&&&&&&&&}&&&&&&,&bubble(int&&&*start&&&&&&&&&&end&--;&&&&}}int&&&&temp&&&nbsp,&nbsp
采纳率:57%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包用冒泡排序法对输入的10个数进行升序排序 并存入数组中_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
用冒泡排序法对输入的10个数进行升序排序 并存入数组中
#include &stdio.h&void main(){int i,j; float a[10],t;printf(&请输入十个数字&);for(i=0;i&10;i++){scanf(&%f&,&a[i]);}for(j=0;j&10;j++){for(i=0;i&10-1;i++) {if(a[i]&a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}}for(i=0;i&10;i++){printf(&%f&,a[i]);printf(& &);}}====
采纳率:58%
来自团队:
x[i]);x[j]=t;}}for (i=0;x[i]=x[j].h& main(){double x[10],&x[i]);for (i=0,j;j++){if (x[i]&x[j]){t = x[i];i&10;n&);for (i=0;j&10,t;i&9;i++)for (j=i+1;%lf&;%g &;printf(&please input 10 data\stdio#include &i++)scanf(&i++) printf(&i&10
为您推荐:
其他类似问题
冒泡排序法的相关知识
换一换
回答问题,赢新手礼包&>&编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
上传大小:932KB
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
综合评分:4.5(10位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有1条
有一点帮助吧,但不是太大,不过还是谢谢了
审核通过送C币
10个C/ C++小游戏项目实战
创建者:ydpawx
6套慕课网算法视频教程
创建者:love
VS2010趣味编程视频教程
创建者:ouyongke
上传者其他资源上传者专辑
从文本文件输入n个同学的姓名、性别、成绩,按成绩又高到底的顺序输出所有学生信息,分别求出男同学、女同学的平均成绩并输出
编制n元一次方程组求解程序。其中n用全局变量定义,方程中的增广矩阵从文本文件中读入,求解方法用列主元消去法。
课程资源热门标签
VIP会员动态
最近下载用户
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。

我要回帖

更多关于 字符串读取每一个字符 的文章

 

随机推荐