C语言习题_字符串换位
21视频教程网3月21日整理
题目很简单就是把字符串的一部分调换位置,比如字符串有n个元素,把p到n-1的字符串,调换到字符串前。
比如字符串:n=10,a[]={1,2,3,4,5,6,7,8,9,10};
p=4的化,转换后a[]={5,6,7,8,9,10,1,2,3,4};
难点就是只能用题目设定好的变量,用最小的空间
void f(int *a,int p,int n)
{
int i,j,t;
....
}
int main(void)
{
int a[]={1,2,3,4,5,6,7,8,9,10};
f(a,4,10);
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
答案1采用尾向前替换
void f(int *a,int p,int n)
{
int i,j,t;
for (i = p; i < n; i ++)
{
t = a[n-1];
for (j = n-1; j > 0; j--)
{
a[j] = a[j-1];
}
a[0] = t;
}
}
答案二采用前向尾替换
void f(int *a,int p,int n)
{
int i,j,k;
for(i=p;i>0;i--)
{ k=a[i-1];
for(j=0;j<n-p;j++)
{
a[i+j-1]=a[i+j];
};
a[i+j-1]=k;
}
}
C语言编辑部
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |