c语言 输出单词的顺序
#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;
}
晁鸿欣诺: 最简单的方法就是用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; } }//这个是逆序调用函数,你可以试一下.