c語言逆向
Ⅰ c語言關於逆向排序
重要的是思想,不是代碼.
原來:1
2
3
4
5
第一:5
2
3
4
1
//
第一個和最後一個交換
第二:5
4
3
2
1
//
第二個和倒數第二個交換
上面2次就交換完畢,
因為交換1次,
是2個數據的位置變動了,
奇數的時候中間的數不用動.
所以是
n/2.
若繼續交換
則
反反得正,又換回來了...
Ⅱ 關於C語言逆向輸出數組
if for等定義的循環塊中(就是大括弧中),這些語句中如果變數是-- or ++
引起的變數改變,是循環塊中的語句結束後才改變。
如:
for(i=0;i<5;i++)
k[i]=i;
輸出K數組後為0 1 2 3 4. 因為i++是在k[i]=i後才自增的。
如果改成這樣:
for(i=0;i<5;)
{
i++;
k[i]=i;
}
輸出K數組:1 2 3 4。因為i++是在k[i]=i之後才自增的。
利用此知識,你可解釋你的問題~
OVER
Ⅲ C語言遞歸法逆向字元輸出
哥哥我幫你寫了個!
#include <stdio.h>
#include <string.h>
#define STR_LEN 1024
void InversePrint(char *str)
{
if (*str != '\0')
{
InversePrint(str + 1);
printf("%c", *str);
}
}
int main(void)
{
char string[STR_LEN] = {0};
printf("Please input a string: \n");
scanf("%s", string);
InversePrint(string);
printf("\n");
return 0;
}
運行例子:
Please input a string:
abcdefghijklmnopqrstuvwxyz
zyxwvutsrqponmlkjihgfedcba
Press any key to continue
Ⅳ C語言逆向輸出
首先,很欣賞你的要求;然後我來講講我的思路,僅供參考:
思路(一):直接用int類型做,判斷位數時,當然用循環從小到大循環,用"%"(模)的方式判斷;你的第二第三個問題一起做比較好,用求模和整除的方式分割這個數,然後把分割的每一位數累加到另一個int類型上。
思路(二):用字元串做,用庫函數strlen很容易判斷位數,也很容易輸出每位數,以及倒序;其實倒序更容易,只要倒著輸出就行,不一定要重新放到另一個字元串中。
思路(三):用遞歸函數做,用一個int作為計數,一個char類型的用來逐個放置,控制好結束條件,即輸入「\n」時結束,然後自然容易做到那3點。
其實,以上逆序的方法都可以換成對稱的思路……
Ⅳ 輸入三個數,然後逆向輸出 用c語言編寫
思路:定義三個變數a,b,c;鍵盤輸入依次賦值,輸出c,b,a的值即可。
參考代碼:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);//鍵盤輸入
printf("%d %d %d\n",c,b,a);//逆序輸出
return 0;
}
/*
運行結果:
1 2 3
3 2 1
*/
Ⅵ c語言 實現字元串的逆向輸出
第一個循環將i定位到字元串尾部,第二個循環從尾部往頭部逐個遍歷輸出字元。