1、首先打開軟件VC++6.0軟件,準備一個空白的C語言文件,引入頭百文件并寫好主函數:
成都創新互聯專注于鄞州企業網站建設,響應式網站建設,成都做商城網站。鄞州網站建設公司,為鄞州等地區提供建站服務。全流程定制開發,專業設計,全程項目跟蹤,成都創新互聯專業和態度為您提供的服務
2、然后輸入代碼,首先定度義數組,接著用一個for循環接受用戶輸入的知數組元素并將其打印到屏幕上,并保存到前面的道數組中專,然后用第二個for循環逆序排序,方法就是前面的元素和后面的元素比較大小,前面比后面小就交換順序,最后再用一個for循環輸出排序的結果:
3、最后編譯運行寫好的程序,打開屬一個命令行,輸入7個不同的數,之后程序就會把輸入的數逆序輸出了。以上就是C語言編程實現數組逆序輸出的方法:
#includestdio.h
void main()
{
unsigned short a,b,c,d,e,f;
printf("請輸入一個四位十六進制數,按回車鍵結束:");
scanf("%X",a);
b=a12;
c=a4;
d=a12;
e=a4;
b=0xf000b;
c=0x0f00c;
d=0x000fd;
e=0x00f0e;
f=b|c|d|e;
printf("輸出反序為:%x\n",f);
}
逆序輸出有很多種,具體的實現方法取決于你題目的要求
1. 如果只是要求逆序輸出,那么可以采用類似的方法:
void reverse(char *s)
{
if(*s=='\0')
return;
reverse(s+1);
printf("%c",*s);
}
這種方法在s很長的情況下會一直遞歸到底,不是很好。
2. 如果需要將字符串整個逆序在函數外面輸出,那么可能希望采用返回字符串指針的方式;實現如下:
char * reverse( char* s )
{
static char *p = s+strlen(s)-1; //p是一個靜態變量,指向當前遞歸層處理的字符串尾,而s指向字符串頭
if(s p)
{
char c = *p; //交換頭尾字符
*p = *s;
*s = c;
p--; //尾向前挪一個
reverse(s+1); //相當于頭向后挪一個
}
return s;
}
3.1 當然,有的時候,并不需要reverse函數本身遞歸,而是可以借助一些輔助的遞歸函數,比如說:
void reversehelp(char * head, char * end)
{
if (head end)
{
char c = *head;
*head = *end;
*end = c;
reversehelp(++head, --end);
}
}
然后在調用時像這樣調用:
char * reverse(char * s)
{
char * end = s + strlen(s) - 1;
reversehelp(s, end);
return s;
}
3.2 類似的輔助函數還可以采用一個字符串指針和一個長度參數的方式,如下例:
void reversehelp( char* s, int n )
{
if ( n 1 )
{
char c = s[n-1];
s[n-1] = s[0];
s[0] = c;
reversehelp( s+1, n-2 );
}
}
然后在調用時如下:
char *reverse(char *s)
{
reversehelp( s, strlen(s) );
return s;
}
采用函數進行字符串逆序輸出,過程為:
定義函數,參數為字符串指針
定義局部變量指針t指向原字符串
移動t指針到字符串尾
向移動t指針,直到回到原指針頭,輸出各位置字符。
參考代碼:
#include stdio.h
#include string.h
void input(char st[]);//定義輸入函數
void reverse(char st[]);//定義反序函數
int main()
{
char s[20];
input(s);//調用輸入函數
printf("Original string: %s\n", s);//輸出原字符串
reverse(s);//調用反序函數
printf("New string: %s\n", s);//輸出反序后的字符串
return 0;
}
void input(char st[])
{
printf("Please enter string: ");
gets(st);
}
//反序函數
void reverse(char st[])
{
int n=strlen(st);
for (int i=0, j=n-1, t; i(n/2); t=st[i], st[i]=st[j], st[j]=t, i++, j--);
}
擴展資料:
gets()用法:
1、gets() 函數是從鍵盤輸入字符串,該函數只有一個參數。參數類型為 char* 型,即 str 可以是一個字符指針變量名,也可以是一個字符數組名。打開編輯器,新建一個c語言文件,引入標準庫并新建主函數:
2、gets() 函數的功能是從輸入緩沖區中讀取一個字符串存儲到字符指針變量 str 所指向的內存空間,這里的程序是用gets函數輸入字符串,可以看到不像scanf那樣需要使用%號,gets函數中直接傳入字符串即可:
3、最后運行下程序,輸入“i love you”,可以看到gets函數可以直接輸出空格,而scanf函數輸出空格則需要使用轉義字符實現,因此gets函數的使用要比scanf簡潔的多。以上就是gets函數使用方法的演示:
①要求
將正整數或負整數
從個位開始逆序輸出。
涉及三個變量,
n是原數,
m用于儲存提取的個位數,
y用于儲存重新組合的逆序數。
~
②定義函數
#include stdio.h
int fun(int n)
{int m,y} ;
/*給y賦初值,組合數在組合之前為0。*/
y=0;
/*給m賦初值,將原數n的絕對值賦值給m。
我試了,也可以直接m=n,刪除y=(n=0)?y:-y,結果一樣有負號,絕對值具體還有什么用,等待大神解答。*/
if(n=0)m=n;
else m=-n;
/*當m不為0時,循環繼續。
當m為0時,即提取到只剩一位數時,m=m/10=0,循環結束。*/
while(m!=0)
{y=y*10+m%10;
/*提取個位:m%10。
已經提取個位升為十位:y乘10。
逆序組合數:y。*/
m=m/10;}
/*降位提取個位:m/10
不斷除10取整,屏蔽個位;
不斷將十位降為個位,再提取;
直到只剩一位數,循環結束。*/
y=(n=0)?y:-y;
/*將負數的負號恢復。*/
return y;
}
③主函數
{int m1,m2;
scanf("%d%d",m1,m2);
printf("%d的逆序是%d\t",m1,fun(m1));
printf("%d的逆序是%d\t",m2,fun(m2));
return 0;
}
④思路整理
1.輸入原數:n
2.求絕對值:m=|n|
3.提取個位:m%10
4.逆序組合:y=y*10+m%10
5.高位降位:m/10
6.恢復負號:y=(n=0)?y:-y
當前文章:反序輸出c語言函數 反序輸出c語言函數怎么用
本文鏈接:http://vcdvsql.cn/article24/hepdce.html
成都網站建設公司_創新互聯,為您提供網站營銷、定制開發、云服務器、網站設計公司、自適應網站、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯