永发信息网

C语言中如何将10个字符串进行排序

答案:5  悬赏:40  手机版
解决时间 2021-02-22 05:34
  • 提问者网友:趣果有间
  • 2021-02-21 07:51
C语言中如何将10个字符串进行排序
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-02-21 09:12
#include<stdio.h>
#include<string.h>
int main()
{
int j,k,i,t,n;
char s[10][10],b[10][10];
for(i=0;i<10;i++)
{
scanf("%s",s[i]);

n=strlen(s[1]);
k=0;
for(i=0;i<9;i++)

for(j=0;j<9-i;j++)
if(strcmp(s[j],s[j+1])>0)
{
for(k=0;k<n;k++)
b[j][k]=s[j][k];
for(k=0;k<n;k++)
s[j][k]=s[j+1][k];
for(k=0;k<n;k++)
s[j+1][k]=b[j][k];  
}      

for(i=0;i<10;i++)
{
printf("%s ",s[i]);
}
return 0;
}
运行效果:



扩展资料:
scanf函数用法:
scanf("输入控制符",输入参数);
功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。
用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。
如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。
全部回答
  • 1楼网友:走死在岁月里
  • 2021-02-21 12:03
不好意思,你说的这个我不是很了解呢,没能帮到你,希望您可以得到满意的答复,祝您生活愉快,谢谢!
  • 2楼网友:第幾種人
  • 2021-02-21 11:09
public static Connection createConnection() { Connection connection=null; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/java", "root","root"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return connection; }
  • 3楼网友:酒醒三更
  • 2021-02-21 09:31
C语言中如何将十个字符串进行排序?这十个。这十个字符分别是爱与毕西谛艾艾夫记。
  • 4楼网友:污到你湿
  • 2021-02-21 09:18
一、算法设计: 1、输入10个字符串; 2、任选一种排序算法对字符串排序,比较时需要使用strcmp, 复制时需要使用strcpy。 3、输出排序后的结果。 二、算法优化: 字符串比较必须使用strcmp,这一点无法优化。 但每次将字符串整体复制,交换值,效率偏低,所以可以使用字符指针数组存储每个字符串的地址,排序时交换指针即可。 另外,输入时可以同步完成排序操作。 三、参考代码: #include <stdio.h> #include <string.h> int main() {     char a[10][100];//10个字符串空间,每个最长限制为100个字节。     char *p[10];//字符指针数组。     int i,j;     char *t;     for(i = 0; i < 10; i ++)     {         scanf("%s",a[i]);//输入第i个字符串。         t=a[i];         for(j = i-1; j>=0; j--)//查找插入的位置。             if(strcmp(p[j], t)<=0) break;//从小到大按字典序排序。             else p[j+1]=p[j];//后移一位。         p[j+1] = t;//插入。     }     //循环结束后,p中就是排序好的10个字符串。     for(i = 0; i < 10; i ++)     {         printf("%s\n", p[i]);     }//输出结果。     return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯