(完整版)数组作业3

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.编写程序,输入两个字符串,并将其中较小的字符串连接到的的字符串后面。(用2种方法实现,一种用strcmp、strlen、strcat等库函数,另一种不用)

例如:输入str1=”aaaaaa”;str2=”bbbbbb”,执行后str1=”bbbbbbaaaaaa”

或输入str1=”ccc”;str2=”bbbbbb”,执行后str1=”cccaaaaaa”

程序1:

#include

#include

main()

{

char str1[25],str2[25];

int n;

gets(str1);gets(str2);

n=strcmp(str1,str2);

if(n>0)

{

strcat(str1,str2);

puts(str1);

}

else

{

strcat(str2,str1);

puts(str2);

}

}

程序2:(有点问题!!!)

#include

main()

{

char str1[25],str2[25];

int i,j,k,n,m=0,x=0;

gets(str1);gets(str2);

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

{

if(str1[i]>str2[i])

n=1;break;

else if(str1[i]

n=2;break;

else

continue;

}

if(n=1)

{

for(i=0;k=(getchar(str1))!='\0';i++)

m++;

for(i=m;i<25;i++)

{

str1[i]=str2[x];

x++;

}

puts(str1);

}

else if(n=2)

{

for(i=0;k=(getchar(str2))!='\0';i++)

m++;

for(i=m;i<25;i++)

{

str2[i]=str1[x];

x++;

}

puts(str2);

}

}

结果:

2.输入一个完全由数字组成的字符串,从字符串的第1个字符起,每2个数字字符转换成两位整数,存放在一维整形数组中,如果最后只剩一个数字,则将该字符作为一个整数存放在数组中,例如:输入”123456789”,则数组中一次存放整数12、34、56、78、9。

程序:

#include

#include

main()

{

char a[25];

int b[25],i,j=0,n;

gets(a);

n=strlen(a);

if(n%2==0)

for(i=0;i

{

b[j]=(int)(a[i]-'0')*10+(int)(a[i+1]-'0');

j++;

}

else

for(i=0;i

{

b[j]=(int)(a[i]-'0')*10+(int)(a[i+1]-'0');

j++;

}

b[j]=(int)(a[n-1]-'0');

for(j=0;j<((n+1)/2);j++)

printf(m,b[j]);

printf(\

);

}

结果:

3.假设5个字符串已经存放在一个二维字符数组中,每行为一个字符串,按从小到大的顺序给这5个字符串排序。

char str[5][15]={“cccc”ddd,”aa”,”e”,”bbbbb”};

/*提示1:每个字符串可用str[0],str[1],str[2]等表示*/

/*提示2:在原有现成排序算法上修改*/

程序:

#include

#include

main()

{

char str[5][15]={cccc,ddd,aa,e,bbbb},a[1][25];

int i,j,k;

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

{

k=i;

for(j=i+1;j<5;j++)

if(strcmp(str[k],str[j])>0) k=j;

if(k!=i)

{

strcpy(a[0],str[k]);

strcpy(str[k],str[i]);

strcpy(str[i],a[0]); }

}

for(i=0;i<5;i++) printf(%s\n,str[i]); }

结果:

相关文档
最新文档