①要求
我們擁有十年網(wǎng)頁設計和網(wǎng)站建設經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設計師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設計、微信開發(fā)、小程序開發(fā)、手機網(wǎng)站制作設計、H5高端網(wǎng)站建設、等業(yè)務。無論您有什么樣的網(wǎng)站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。
將正整數(shù)或負整數(shù)
從個位開始逆序輸出。
涉及三個變量,
n是原數(shù),
m用于儲存提取的個位數(shù),
y用于儲存重新組合的逆序數(shù)。
~
②定義函數(shù)
#include stdio.h
int fun(int n)
{int m,y} ;
/*給y賦初值,組合數(shù)在組合之前為0。*/
y=0;
/*給m賦初值,將原數(shù)n的絕對值賦值給m。
我試了,也可以直接m=n,刪除y=(n=0)?y:-y,結果一樣有負號,絕對值具體還有什么用,等待大神解答。*/
if(n=0)m=n;
else m=-n;
/*當m不為0時,循環(huán)繼續(xù)。
當m為0時,即提取到只剩一位數(shù)時,m=m/10=0,循環(huán)結束。*/
while(m!=0)
{y=y*10+m%10;
/*提取個位:m%10。
已經(jīng)提取個位升為十位:y乘10。
逆序組合數(shù):y。*/
m=m/10;}
/*降位提取個位:m/10
不斷除10取整,屏蔽個位;
不斷將十位降為個位,再提?。?/p>
直到只剩一位數(shù),循環(huán)結束。*/
y=(n=0)?y:-y;
/*將負數(shù)的負號恢復。*/
return y;
}
③主函數(shù)
{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.輸入原數(shù):n
2.求絕對值:m=|n|
3.提取個位:m%10
4.逆序組合:y=y*10+m%10
5.高位降位:m/10
6.恢復負號:y=(n=0)?y:-y
#include stdio.h
int main()
{ ?int len,i;
char str[100];
gets(str);
len=strlen(str);
for(i=len-1;i=0;i--)
printf("%c",str[i]);
return 0;
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
你是想按倒序重新放到一個數(shù)組里 然后將數(shù)組地址返回是吧,想法不錯 但上面代碼實現(xiàn)不了的。因為你的數(shù)組r[5]的生命周期是在fun函數(shù)運行期間,當函數(shù)調(diào)用結束返回時,這個函數(shù)的棧清空,數(shù)組r[5]也就不存在了。
#include "stdio.h"
#define N 5
void fun(int arr[],int n)
{
int temp,i;
for(i=0;i=n/2-1;i++)
{
temp=arr[i];
arr[i]=arr[n-i-1];
arr[n-i-1]=temp;
}
}
main()
{
int a[N]={8,6,5,4,1},i;
for(i=0;iN;i++)
printf("%4d",a[i]);
printf("\n");
fun(a,N);
for(i=0;iN;i++)
printf("%4d",a[i]);
}