㈠ c語言題:將s串中所有字元前移一個位置,第一個字元移到最後。謝謝幫
將s串中所有字元前移一個位置,第一個字元移到最後:
intlen=strlen(s);
charc=s[len-1];
s[len-1]=s[0];
s[0]=c;
(1)c語言位置首末倒換擴展閱讀
字元串中字母順序前移,其他字元順序後移。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*fun(char*s)
{
inti,j,k,n;
char*p,*t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0;
k=0;
for(i=0;i<n;i++)
{
if(((s[i]>='A')&&(s[i]<='Z'))||((s[i]>='a')&&(s[i]<='z')))
{
t[j]=s[i];
j++;
}
else
{
p[k]=s[i];
k++;
}
}
for(i=0;i<k;i++)
t[j+i]=p[i];
t[j+k]=0;
returnt;
}
intmain()
{
chars[80];
printf("Pleaseinput:");
gets(s);
printf(" Theresultis:%s ",s);
printf(" Theresultis:%s ",fun(s));
getchar();
getchar();
return0;
}
㈡ 如何將鏈表首指針移至隊尾 (C語言)
不大明白你說的意思,我的理解是這樣的啊~
head也就是首指針,它本身不保存數據,它的next指針指向鏈表的首節點。那麼,你提供的這段代碼,流程上似乎有點問題:
首先,p指向的首節點,即p=head->next;
然後,pre指向的尾節點,就是那個while循環的功能;
然後,源代碼中的順序應該有點問題,我分析應該是這樣的:
//先將head後移一位,因為head指向鏈表的首節點,而原鏈表的首節點要移到末尾,所以移動之後的鏈表首節點應該就是head->next->next也就是p->next了
head->next=p->next;
//然後,將原來的首節點(也就是p)移動到鏈表末尾
pre->next=p;
p->next=NULL;
原題中,改變head的位置本意是想讓head指向原鏈表的首節點,這樣head的next就會指向新鏈表的首節點(也就是head=head->next之後,head=p了,新鏈表的首節點(就是原來的head->next->next)),但是這種做法並不正確,原來的首節點改動位置了,這樣的想法也就失效了。
不知道我這么說能不能幫你解決問題。
㈢ c語言如何把數字順序顛倒
顛倒方法:
用演算法實現將一個輸入的數字顛倒(輸入12345->54321),要求不調用任何系統函數,也不能將輸入的數字轉換為字元串作為中間過渡,就可以顛倒了。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
C語言含義:
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
㈣ c語言怎麼把兩個字元串交換位置
利用strcpy()函數。
chara[10]="abed",b[10]="efg",t[10];
strcpy(t,a);//a復制給t
strcpy(a,b);//b復制給a
strcpy(b,t);//t復制給b
函數功能是字元串復制,將第一個參數指定的字元串復制到第二個參數指定的位置
兩個參數都是字元串首地址。
使用strcpy需要 #include<string.h>
㈤ c語言 數組元素交換 交換數組第一個位置和最後一個位置的數,輸出交換後數組,求大神幫忙看看該怎麼改
首先,這是對數組使用的概念上理解錯了。數組a[n]可用的數組元素一共有n個,從a[0]開始到a[n-1]結束,下面的圖是修改以後的程序。
㈥ c語言求數組元素交換次序
假定數據長n,輸入一個整數m,
1、使數組的後n-m個元素移到前邊,前m-1個元素在數組中從最後位置倒序排列
#include
"stdio.h"
main()
{
int
i,n,m,t,j;
int
d[200];
printf("\n輸入n的值(n<200):");
scanf("%d",&n);
for(i=0;i<n;i++)d[i]=i;
printf("\n輸入m的值(m<200):");
scanf("%d",&m);
printf("\n輸出調整前的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
//調整程序開始
for(i=0;i<m;i++)
{//n-m個數前移了
t=d[0];
for(j=1;j<n;j++)d[j-1]=d[j];
d[n-1]=t;
}
for(i=0;i<m/2;i++)
{//倒序
t=d[n-1-i];
d[n-1-i]=d[m+i];
d[m+i=t;
}
printf("\n輸出調整後的數據:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
}