本文目錄一覽:
- 1、C語言如何利用指針,將數組倒置啊
- 2、C語言將一個單鏈表倒置
- 3、急求用c語言編寫:一個字符串編寫程序將其倒置,如:”abcd” 改為:”dcba”,附上注釋。謝謝”
- 4、用c語言實現數組倒置
- 5、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]就停了
原創文章,作者:VNKQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146353.html