c语言 输出单词的顺序

作者&投稿:宓郝 (若有异议请与网页底部的电邮联系)
c语言 输入10个单词,按字典顺序输出 不要复制不对的过来啊~

#include "stdio.h"
#include "string.h"
int main()
{
char str[10][30]={0};
char tem[30]={0};
int i,j;
printf("请输入10个单词:");
for(i=0;i<10;i++)//输入
scanf("%s",str[i]);
for(i=0;i<9;i++)//排序
for(j=i+1;j<10;j++)
if(strcmp(str[i],str[j])>0)
{
strcpy(tem,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],tem);
}
printf("这10个单词按照字典排序输出为:
");
for(i=0;i<10;i++)// 输出
{
printf("%s
",str[i]);
}
}

  #include
  #include
  int main()
  {
  char string[10][50], temp[50];
  printf("请输入6个单词:
");
  for(int i = 0; i < 6; i++)
  scanf("%s", string[i]);
  /*冒泡排序*/
  for(int i = 0; i < 5; i++ )
  for(int j = i+1; j < 6; j++)
  if(strcmp(string[i], string[j]) == 1)//比较字符串大小,可以用strcmp
  {
  strcpy(temp, string[i]) ;//交换要strcpy
  strcpy(string[i], string[j]) ;
  strcpy(string[j], temp) ;
  }
  //输出
  printf("输出排好序的6个单词:
");
  for(int i = 0; i < 6; i++ )
  puts(string[i]);
  return 0;
  }


PS:若有不明白的地方,可以追问


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

int main(int argc, char** argv)
{
    int group_number = 0;
    scanf("%d", &group_number);

    char*** input;
    input = new char**[group_number];
    int** order;
    order = new int*[group_number];

    int* sample_number;
    sample_number = new int[group_number];
    
    for (int i = 0; i < group_number; i++)
    {
        scanf("%d", &sample_number[i]);

        input[i] = new char*[sample_number[i]];
        for (int j = 0; j < sample_number[i]; j++)
        {
            input[i][j] = new char[100];
        }
        for (int j = 0; j < sample_number[i]; j++)
        {
            scanf("%s", input[i][j]);
        }
        order[i] = new int[sample_number[i]];
        for (int j = 0; j < sample_number[i]; j++)
        {
            order[i][j] = j;
        }
        //按照预定的规则进行排序
        for (int j = 0; j < sample_number[i] - 1; j++)
        {
            bool change = false;
            for (int k = sample_number[i] - 1; k >= 1 + j; k--)
            {
                if (strlen(input[i][k]) > strlen(input[i][k - 1]))
                {
                    int temp;
                    temp = order[i][k];
                    order[i][k] = order[i][k - 1];
                    order[i][k - 1] = temp;
                }
                else if (strlen(input[i][k]) == strlen(input[i][k - 1]))
                {
                    int len = strlen(input[i][k]);
                    bool equal_change = false;
                    for (int q = 0; q < len; q++)
                    {
                        if (input[i][k][q] < input[i][k - 1][q])
                        {
                            equal_change = true;
                            break;
                        }
                    }
                    if (equal_change)
                    {
                        int temp;
                        temp = order[i][k];
                        order[i][k] = order[i][k - 1];
                        order[i][k - 1] = temp;
                    }
                }

            }
            if (!change)
            {
                break;
            }
        }
    }
    
    //输出结果
    for (int i = 0; i < group_number;i++)
    {
        printf("Case %d:
", i + 1);
        for (int j = 0; j < sample_number[i]; j++)
        {
            printf("%s
", input[i][order[i][j]]);
        }

        delete []order[i];
        for (int j = 0; j < sample_number[i]; j++)
        {
            delete []input[i][j];
        }
        delete []input[i];
    }

    delete []input;
    delete []order;
    delete []sample_number;
    
}



双辽市13287674911: C语言输入字符串,将输入字符串里的各单词逐行输出. -
晁鸿欣诺: 最简单的方法就是用strtok函数,可以轻松搞定! char str[128] ; //输入数据 char *word; gets(str);word=strtok(str, " " ); //单词间应该是用空格分开的 while ( word ) {printf("%s\n", word ); word=strtok(NULL, " " );}

双辽市13287674911: c语言 输出单词的顺序 -
晁鸿欣诺: #include int main(int argc, char** argv) { int group_number = 0; scanf("%d", &group_number); char*** input; input = new char**[group_number]; int** order; order = new int*[group_number]; int* sample_number; sample_number = new int[group_...

双辽市13287674911: c语言 输入一行字符,将其中的单词按照单词的长度由小到大的顺序输出 -
晁鸿欣诺: 先单词间的空格分割字符串,把空格换成'/0',然后用各个指针计算长度,排序输出

双辽市13287674911: C语言编程:英文单词怎么按A~~z的方法排序 -
晁鸿欣诺: /*字符串冒泡排序,以输入的字符串为空格为结束*/ #include <stdio.h> #include <string.h> #define MAXNUM 5 #define MAXLEN 20 main() {char s1[MAXNUM][MAXLEN],max[MAXLEN];int num=MAXNUM,i,j,exchange; for (i=0;i<num;i++){...

双辽市13287674911: (c语言)输入一组英文单词,按字典顺序排序后输出
晁鸿欣诺: main() { int i,j,x; char s; scanf(%s,s); for(i=0;i全部

双辽市13287674911: 有N个英文单词,用C语言编程,按这些单词在英文词典上的排列次序输出这些单词. 求大神指导 -
晁鸿欣诺: 字符串比较,排序

双辽市13287674911: c 语言如何在文件中提取单词,并按照英文词典顺序排序输出到另外一个文件 -
晁鸿欣诺: char c[1024]; //这是你的文章数组,大小有点小~ for(i=0;i<strlen(c);i++){ if(*(c+i)<'a'||*(c+i)>'z') *(c+i)=' '; } //这句的意思:不是'a'-'z'之间的字符就替换成空格 //这样的话 你给的例子abc#aba?axy34 hpz_hh 就变成 abc aba axy hpz_hh //之后的你自己做吧.. //给你小提示的话可以用strtok()库函数分离字母和空格 //strtok,strlen都是string.h里面的 可以查找学一学 //希望对你有点帮助

双辽市13287674911: C语言 统计文件中单词的个数,并将单词依次输出到屏幕 -
晁鸿欣诺: #include <stdio.h>#include <string.h>int main(void) {int a = 0, b = 0, c = 0;char buf[128];FILE *fp; /* 打开文件,文件名必须大写 */fp= fopen("DATA5610.TXT", "r");if (!fp) {printf("No 'DATA5610.TXT' found.\n");return -1;} /* 逐...

双辽市13287674911: 用c语言求输入3个单词,按单词长度从大到小输出单词的程序 -
晁鸿欣诺: char a[][15] = { "asdadgew", "zdkskss", "qjksnn" }; char b[15] = "0"; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2 - i; j++) { if (strlen(a[j]) < strlen(a[j+1])) { strcpy(b, a[j]); strcpy(a[j], a[j+1]); strcpy(a[j+1], b);} } } for (int i = 0;i < 3;i++...

双辽市13287674911: c语言中怎样逆序输出一句话中的每个单词 -
晁鸿欣诺: char nixu(char a[]) { int i=0,j=0; char ch; i=strlen(a); for(j=0;j{ ch=a[j]; a[j]=a[i-1-j]; a[i-1-j]=ch; } }//这个是逆序调用函数,你可以试一下.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网