您的位置:

c语言结构倒置,c语言倒置字符串

本文目录一览:

C语言如何利用指针,将数组倒置啊

#include stdio.h

void func(int *a,int n)

{

    int *p,t;

    for(p=a+n-1;ap;a++,p--)

    {

        t=*a;

        *a=*p;

        *p=t;

    }

}

int main()

{

    int a[10],i;

    for(i=0;i10;++i)

    {

        scanf("%d",a[i]);

    }

    func(a,10);

    for(i=0;i10;++i)

    {

        printf("%d ",a[i]);

    }

    return 0;

}

C语言将一个单链表倒置

扣着的是头节点(头子)

车是首节点(首子)

马是次节点(次子)

牙签细的是指针指向,香头发黑的是指向,铁头细的是指向。

根据步骤写程序的伪算法(3步4循环,7张图片搞定),如下:

以下是while循环(条件:香头指向不为空)

第一个循环把马弄到车前面,

第二个循环把相弄到马前面

第三个循环把士弄到相前面

........

直到香指向为空后停止循环。

代码如下:只需要一个首结点pHead,就能把链表找到,并倒置。具体代码如下

p香=pHead-pNext;

p铁=p香-pNext;

p香-pNext=NULL;

P香=p铁

while(p香 !=NULL)

{

   p铁=p香-pNext;

   p香-pNext=pHead-pNext;

   pHead-pNext=p香;

   p香=p铁;

}

对照伪算法(三步四循环),和上面的代码是一一对应的:

第一步:香头指向首子,铁头指向次子

第二步:删掉首子指向次子(铁头所指向的那个子)的牙签

第三步:香头跟着铁头

以下循环条件:(条件:香头指向不为空)

{

  循环1:铁头移动到香头的下一个指向

  循环2:香头的下一个指向首子

  循环3:头子的下一个跟着香头

  循环4:香头跟着铁头

}

自己用道具操作几遍,然后把流程背会,以后自己根据流程写代码即可。

急求用c语言编写:一个字符串编写程序将其倒置,如:”abcd” 改为:”dcba”,附上注释。谢谢”

#include stdio.h

int main()

{

    int i,j;

    char str[100],c;

    scanf("%s",str);    //读入字符串

    for(i=0,j=strlen(str)-1;       //i从最前面开始,j从最后面开始,数组元素进行交换

        ij;    //当i和j碰头时就结束交换

        i++,j--)    //每交换一个,i往后移一个,j往前移一个

    {

        c=str[i];    //用临时变量保存第i个字符

        str[i]=str[j];    //第j个字符存入第i个位置

        str[j]=c;    //临时变量,即原第i个字符写入第j个位置

    }

    printf("%s",str);    //输出倒置后的字符串

}

用c语言实现数组倒置

#include stdio.h

void invert(int x[],int n);

void main()

{

int i,*p,a[10]={2,3,4,5,6,7,8,9,10,11};

printf("%s\n","元素倒置前:");

for(p=a;pa+10;) printf("%d ",*(p)++);

printf("\n");

p=a;

invert(p,10);

printf("%s\n","元素倒置后:");

for(p=a;pa+10;) printf("%d ",*(p)++);

printf("\n");

}

void invert(int x[],int n)

{

int temp,i,j,m=(n-1)/2;

for (i=0;i=m;i++)

{

j=n-1-i;

temp=x[i];x[i]=x[j];x[j]=temp;

}

}

C语言一维数组倒置问题

for的作用是输出倒置的数组。

while循环的流程是

a[0]和a[7]交换,

a[1]和a[6]交换

a[2]和a[5]交换

a[3]和a[4]交换

之后i就大于j了

一共交换4次,所以到a[3]就停了