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定位到字符串尾部,第二个循环从尾部往头部逐个遍历输出字符。