我是靠谱客的博主 冷傲未来,最近开发中收集的这篇文章主要介绍c语言20个不等长字符串,C语言问题!高手进!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在主函数中输入10个不等长的字符串,用另外一个函数对它们进行排序,然后在主函数中输出排序后的字符串。要求用指针数组处理

#include

#include

#define MAX_LEN 20 /*定义字符串的

在主函数中输入10个不等长的字符串,用另外一个函数对它们进行排序,然后在主函数中输出排序后的字符串。要求用指针数组处理

#include

#include

#define MAX_LEN 20 /*定义字符串的最大长度*/

void main()

{

int i;

char *ps[10],str[10][MAX_LEN];

void sort(char *s[]);

for(i=0;i<10;i++) ps[i]=&str[i][MAX_LEN];/*此处填写段将二维字符数组中第i个字符串的首地址赋给指针数组的第i个指针元素*/

printf("请按行输入10个字符串:n");

for(i=0;i<10;i++) scanf("%s",&str[i][MAX_LEN]);/*此处填写代码段,接收10个不等长的的字符串,存到数组中*/

sort(ps);/*此处填写语句调用排序函数*/

printf("排序后的字符串为:n");

for(i=0;i<10;i++) printf("%s",*ps[i]);/*此处填写代码段,输出排序后的字符串*/

}

void sort(char *s[])

{

int i,j;

char *p;

for(i=0;i<10;i++)

{for(j=0;j<10;j++)

{

if(strcmp(s[i],s[j]))

{p=s[i]; s[i]=s[j]; s[j]=p;}

}

}/*此处填写代码段,完成选择排序过程

提示:每次排序比较过程中如需交换操作,则利用已给变量交换字符串地址*/

}

用指向指针的指针的方法对n个整数排序并输出。要求排序用一个函数实现,n和整数在主函数中输入,最后在主函数中输出.

#include

void main()

{

int i,n,num[20],**p,*ps[20];

void bubble(int **p,int n);

printf("请输入整数的个数n");

scanf("%d",&n);

for(i=0;i<20;i++) ps[i]=&num[i];/*此处填写代码段,分别将指针数组的第i个指针元素指向整数数组的第i个整数元素*/

printf("请用逗号作间隔输入%d个数:n",n);

for(i=0;i

p=ps;

bubble(p,n);/*此处编写语句,调用排序函数*/

printf("排序后的序列为:n");

for(i=0;i

printf("n");

}

void bubble(int **p,int n)

{

int i,j,k,*temp;

for(i=n-1;i>0;i=k)

for(j=0,k=0;j

{if(*(*p+j)>*(*p+j+1)){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;k=j;}

}/*此处填写代码段,完成冒泡排序过程

提示:每次排序比较过程中如需交换操作,则利用已给变量交换存放整数的地址*/

}

写一函数,输入一个十六进制数,输出相应的十进制数。

#include

#define MAX 10

void main()

{

int c,i,flag,flag1;

int h2d(char s[]);

char d,t[MAX];

i=0; flag=1; flag1=1;

printf("n请输入十六进制数:");

while(c=getchar()!='n'&&i

{ if (c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')//添加代码字符c是十六进制数值

{flag=1; t[i++]=c;}

else if (flag)

{t[i]='';

printf("n十进制数%dn",h2d(t));

printf("是否继续?继续输入Y/y 退出输入N/n n");

scanf("%c",&d);//添加代码从键盘接收一个字符

if(d=='n'||d=='N') flag1=0;//添加代码接收的字符是否满足退出条件

else{flag=0; i=0; printf("n请输入十六进制数:");}

}

}

}

int h2d(char s[])

{int i,n=0;

for (i=0;s[i]!='';i++)

{if (s[i]>='0'&&s[i]<='9') n=n*16+s[i]-'0';//添加代码s[i]是数字字符

if (s[i]>='a'&&s[i]<='f') n=n*16+s[i]-'a'+10;//添加代码s[i]是小写字母

if (s[i]>='A'&&s[i]<='F') n=n*16+s[i]-'A'+10;//添加代码s[i]是大写字母

}

return n;

}

上述程序都无法正常运行~该如何修改~?

展开

全部

最后

以上就是冷傲未来为你收集整理的c语言20个不等长字符串,C语言问题!高手进!的全部内容,希望文章能够帮你解决c语言20个不等长字符串,C语言问题!高手进!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部