| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2022 人关注过本帖
标题:C语言排列问题
取消只看楼主 加入收藏
luckyscholes
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-8-16
收藏
 问题点数:0 回复次数:1 
C语言排列问题
本人是C语言新手,现在做作业遇到一个问题,请教各位大大.

如果我输入一段英文的文章,然后用什么方法可以将它按照ABCD...这样的顺序排列出来呢?

比如我输入

I love you, baby. You are my forever.

然后会显示
are               1
baby              1
forever           1
I                 1
love              1
my                1
you               2

后面的数字显示这个单词出现的次数,前面是按照字母排列

请问各位可以给點提示或者帮忙一下嘛?
搜索更多相关主题的帖子: C语言 排列 love ABCD 
2008-08-16 16:47
luckyscholes
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-8-16
收藏
得分:0 
回复 2# 广陵绝唱 的帖子
谢谢楼上的..我自己也寫了一个程序,不知道还需要那些改进.
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAXWORDS 1000
#define MAXCHARS 20

int getword(char word[MAXCHARS + 1], int chars);


int main(int argc, char **argv) {

  char words[MAXCHARS+1];
  char text[MAXWORDS][MAXCHARS+1];
  int numofwords = 0;
  int i = 0, j = 0;

  while(getword(words, MAXCHARS)!= EOF) {

    if (numofwords < MAXWORDS) {
      strcpy(text[numofwords], words);
    }

    numofwords++;
  }

  char temp[MAXWORDS + 1];

  for (i = 0; i < (numofwords - 1); i++) {
    for (j = (i + 1); j < numofwords; j++) {
      if (strcasecmp(text[i], text[j]) > 0) {
        strcpy(temp, text[i]);
        strcpy(text[i], text[j]);
        strcpy(text[j], temp);
      }
    }
  }
  
  int sum = 0;
  int number = 1;

  for (i = 0; i < (numofwords - 1); i++) {
    if(strcasecmp(text[i],text[i + 1]) == 0) {
      number++;
    } else {
      printf("%-10s          %5d\n", text[i],number);
      sum = sum + number;
      number = 1;
    }
  }

  printf("%-10s          %5d\n", text[numofwords - 1], (numofwords - sum));
  printf("Processing completed\n");




  return 0;
}

int getword(char *word, int chars) {

  char c;

  c = getchar();
  while(c != EOF && !isalpha(c)) {
    c = getchar();
  }

  if (c == EOF) {
    return EOF;
  }

  *word = c;
   word =word + 1;
   chars--;

   c = getchar();
   while(c != EOF && isalpha(c) && chars > 0) {
     *word = c;
     word = word + 1;
     chars--;
     c = getchar();
   }

   *word = '\0';

   return 0;
}
2008-08-18 22:16
快速回复:C语言排列问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029890 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved