在主函数中输入10个等长的字符串。用另一函数对它们排序,然后在主函数输出这10个已排好序的字符串。
对照着自己的程序看看吧 鼓励自己写算法 再接再厉吧。。。。。
//只针的使用很容易造成内存错误 在使用时应该小心
//记住这一点 指针使用前最好初始化
#include
#include
int main(){
void sort(char p[10][100]);
char a[10][100];
printf("请输入十个字符串:");
for(int i=0;i<10;i++){
scanf("%s",(a+i));
}
sort(a);//这个排序算法效率虽低 可是我感觉自己写的的比用库函数(qsort排序函数)好,恩 写的不错
printf("排序后字符串为:
");
for(int j=0;j<10;j++){
printf("%s
",*(a+j));
}
return 0;
}
void sort(char p[10][100]){
char temp[100];//这里用指针的话 下面赋值的时候没有指向 就是说指针在使用之前必须初始化
for(int i=0;i<10;i++){
for(int j=0;j<10-i;j++){
if(strcmp(p[j],p[j+1])>0) {
strcpy(temp,p[j]);//在C语言中,数组赋值不能直接赋值 必须用相应的函数
//字符串赋值函数是strcpy 整型赋值函数是memcopy()
strcpy(p[j],p[j+1]);
strcpy(p[j+1],temp);
}
}
}
}
对照着自己的程序看看吧 鼓励自己写算法 再接再厉吧。。。。。
//只针的使用很容易造成内存错误 在使用时应该小心
//记住这一点 指针使用前最好初始化
#include
#include
int main(){
void sort(char p[10][100]);
char a[10][100];
printf("请输入十个字符串:");
for(int i=0;i<10;i++){
scanf("%s",(a+i));
}
sort(a);//这个排序算法效率虽低 可是我感觉自己写的的比用库函数(qsort排序函数)好,恩 写的不错
printf("排序后字符串为:
");
for(int j=0;j<10;j++){
printf("%s
",*(a+j));
}
return 0;
}
void sort(char p[10][100]){
char temp[100];//这里用指针的话 下面赋值的时候没有指向 就是说指针在使用之前必须初始化
for(int i=0;i<10;i++){
for(int j=0;j<10-i;j++){
if(strcmp(p[j],p[j+1])>0) {
strcpy(temp,p[j]);//在C语言中,数组赋值不能直接赋值 必须用相应的函数
//字符串赋值函数是strcpy 整型赋值函数是memcopy()
strcpy(p[j],p[j+1]);
strcpy(p[j+1],temp);
}
}
}
}
请采纳答案,支持我一下。
#include<stdio.h>
#include<string.h>
int main()
{
void sort(char (*p)[81]);
char a[5][81]={"qwert","asdfg","zxcvb","yhnju","ikmlo"};
int i;
/*printf("请输入5个等长的字符串并以enter键结束:
");
for(i=0;i<5;i++)
scanf("%s",a+i);*/
printf("5个等长的字符串如下:
");
for(i=0;i<5;i++)
printf("%s
",a+i);
printf("从大到下排序后输出:
");
sort(a);
return 0;
}
void sort(char (*p)[81])
{
int i,j;
char b[81];
for(i=0;i<4;i++)
{
for(j=0;j<5-i;j++)
{
if(strcmp(*(p+j),*(p+j+1))>0)
{
strcpy(b,*(p+j));
strcpy(*(p+j),*(p+j+1));
strcpy(*(p+j+1),b);
}
}
}
for(i=0;i<5;i++)
printf("%s
",p+i);
}
对照着自己的程序看看吧 鼓励自己写算法 再接再厉吧。。。。。
//只针的使用很容易造成内存错误 在使用时应该小心
//记住这一点 指针使用前最好初始化
#include<stdio.h>
#include<string.h>
int main(){
void sort(char p[10][100]);
char a[10][100];
printf("请输入十个字符串:");
for(int i=0;i<10;i++){
scanf("%s",(a+i));
}
sort(a);//这个排序算法效率虽低 可是我感觉自己写的的比用库函数(qsort排序函数)好,恩 写的不错
printf("排序后字符串为:\n");
for(int j=0;j<10;j++){
printf("%s\n",*(a+j));
}
return 0;
}
void sort(char p[10][100]){
char temp[100];//这里用指针的话 下面赋值的时候没有指向 就是说指针在使用之前必须初始化
for(int i=0;i<10;i++){
for(int j=0;j<10-i;j++){
if(strcmp(p[j],p[j+1])>0) {
strcpy(temp,p[j]);//在C语言中,数组赋值不能直接赋值 必须用相应的函数
//字符串赋值函数是strcpy 整型赋值函数是memcopy()
strcpy(p[j],p[j+1]);
strcpy(p[j+1],temp);
}
}
}
}
这位同学,你的程序错误有点多,首先,你定义的char *a[10];这是一个数组指针,这个相当于指向一个二维数组的char数组a[x][10],但是根据题意,你要应该说指针数组,char(*a)[10];其次,这只是一个指针,你没有malloc一个空间,你怎么直接scanf 呢?第三,void(p);?这个亮了,应该是sort(p),恩,sort是这个程序唯一亮点的地方,虽然用的是冒泡排序,效率低,但是你是交换指针记录的地址,这点还是不错的。
#include <string.h>
void sort(char *str[])
{
char *temp;
int i,j,k;
for (i=0;i<9;i++)
{
for (j=0;j<9-i;j++)
{
if (strcmp(str[j],str[j+1]) > 0)
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
}
int main()
{
int i;
char *str[]={"thisisaboy","a","bsd","ad","sdfasdf","sdfaw","adf","adf","sdfa","adsffe"};
sort(str);
for (i=0;i<10;i++)
printf("%s\n",str[i]);
}
在主函数中输入10个等长的字符串。用另一函数对它们排序,然后在主函数...
include<string.h> int main(){ void sort(char (*p)[81]);char a[5][81]={"qwert","asdfg","zxcvb","yhnju","ikmlo"};int i;\/*printf("请输入5个等长的字符串并以enter键结束:\\n");for(i=0;i<5;i++)scanf("%s",a+i);*\/ printf("5个等长的字符串如下:\\n");for(i...
在主函数中输入10个等长的字符串。用另外一函数对他们进行排序_百度...
int[] X = new int[10];X[0]=int.Parse(第一个字符串);逐一赋值到数组X中 for (int i = 0; i <= 9; i++)\/\/冒泡法对数组X[]降序排序 { for (int j = i + 1; j <= 9; j++){ if (X[I] < X[J]){ int temp = X[i];X[i] = X[j];X[j] = temp;} } }...
在主函数中输入10个等长的字符串。用另一函数对他们排序。然后在主函数...
for(i=0;i<10;i++)scanf("%s",a[i]);*\/ sort(a); \/\/只要数组首地址就可以了 printf("排序后字符串为:\\n");for(i=0;i<10;i++)printf("%s\\n",*(a+i));return 0;}
编写一个程序,在主函数中输入10个等长的字符串。用另一个函数void sort...
下面的程序是对每一个字符串当中的字符进行排序。#include#includevoid sort(char *s){ int i,j; char c; for(i=0; i<strlen(s); i++) { for(j=i; j>0; j--) if(s[j-1]>s[j]) { c=s[j-1];s[j-1]=s[j];s[j]=c; } }}int main(){ int i; ...
c语言怎么样只写入文件前十个字符
主函数中输入10个等长字符串。在主函数中输入10个等长字符串,用另一个函数排序并在主函数中输出。C语言是一种计算机程序设计语言,既有高级语言的特点,又具有汇编语言的特点。
...个函数,使输入的字符串按反序存放,在主函数中输入和输出字符串。_百...
);} 参考#3 char* reserve(char* src){ int j = strlen(src)-1;for ( int i=0 ;i<j;++i,--j ){ char temp = src[j];src[j] = src[i];src[i] = temp;} return src;} 在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串 ...
c语言编写一个函数sort按照学生编号由小到大的顺序排列二维数组,两门...
数组的4种声明方式:1.先声明再初始化例如:\/\/1.声明int[] nums;\/\/初始化nums = new int[5];2.声明并初始化例如:\/\/2.声明、初始化int[] nums = new int[10];3.创建数组同时赋值例如:\/\/3.创建数组同时赋值String[] names=new String[]{"大名","小米","夏雨荷"};int[] ages=new ...
2. 字符串排序:在主函数中输入10个不等长的字符串放入二维字符数组中...
include <string.h> define N 10 \/*根据字符串的长度排序,由长到短*\/ void sort(char *p[N]);void main(){ char str[N][50];\/*保存字符串的二维数组,每个字符串的最大长度是50*\/ int i;char *p[N];\/*声明指针数组,保存二维数组每一行的地址*\/ printf("请输入%d个字符串:\\n"...
从主函数输入十个不等长的字符串,编写函数,对这些字符串进行排序,在...
字典序排序如下:include <string.h>#include <stdio.h>void paixu(char a[][20]){int i,j;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(strcmp(a[j],a[j+1])>0){char t[10];strcpy(t,a[j]);strcpy(a[j],a[j+1]);strcpy(a[j+1],t);} }int main(){int i,j;...
在主函数中输入10个不等长的字符串。用另一函数对它们排序。然后在主...
指针是根据地址记录值的 temp=*(s+j);(s+j)=*(s+j+1);(s+j+1)=temp;这三句话就是 (s+j) 和 *(s+j+1)两个地址所记录的值互换了一下