只需将字符串的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到字符串长度一半时,就完成倒序了。切记不要全部倒序,不然又恢复成原字符串了。
#include <stdioh>#include <stringh>
// 反序字符串x并返回
char reverse_string(char x)
{
int len = strlen(x);
int i, n = len / 2;
char tem;
// 第一个和最后一个交换,第二个和倒数第二个交换
// 这样就只用交换一半
for (i = 0; i <= n; i++)
{
tem = x[i];
x[i] = x[len - 1 - i];
x[len - 1 - i] = tem;
}
return x;
}
int main()
{
char str[] = "0123456789";
printf("reverse string : %s\n", reverse_string(str));
return 0;
}
int reverse(int n)
{
int r=0;
while(n!=0)
{
r=10;
r+=(n%10);
n/=10;
}
return r;
}
#include <stdioh>
int reverse_num(int n)
{
int m = n%10;
int i = n/10;
while (i > 0)
{
int a = i%10;
m = 10;
m += a;
i /= 10;
}
return m;
}
int main()
{
int n = 0;
int m = 0;
printf("Please input a number:\n");
scanf("%d", &n);
printf("The reverse number is : %d\n",reverse_num(n));
return 0;
}
扩展资料在一个变化过程中,发生变化的量叫变量(数学中,常量为x,而y则随x值的变化而变化),有些数值是不随变量而改变的,我们称它们为常量。
自变量(函数):一个与它量有关联的变量,这一量中的任何一值都能在它量中找到对应的固定值。
因变量(函数):随着自变量的变化而变化,且自变量取唯一值时,因变量(函数)有且只有唯一值与其相对应。
函数值:在y是x的函数中,x确定一个值,y就随之确定一个值,当x取a时,y就随之确定为b,b就叫做a的函数值。
#include <stdioh>
#include <stdlibh>
#include <stringh>
void reverse(char s[]) //思路:第一个和最后一个交换。第二个和倒数第二个交换。交换次数是总字母个数的1/2取整。
{
char tmp;
int count = 0;
int i = 0;
int j = 0;
if(s == NULL)
{
printf("传入的参数错误!\n");
exit(-1);
}
while(s[count] != '\0')
{
count++; //统计字符串中字母个数
} //还可以通过这句话实现上面的while功能:count = strlen(s);
i = count/2; //计算交换的次数
count--;//方便后边第一个s[count]表示最后一个字母。
for(j=0; i>0; i--, j++, count--)
{
tmp = s[j];
s[j] = s[count];
s[count] = tmp;
}
}
int main()
{
char p = "abcdefg";
reverse(p);
printf("%s\n", p);
return 0;
}
原创。哪不明白可以提问。。。。
//#include "stdafxh"//If the vc++60, with this line
#include "stdioh"
int reverse(int value){
static x;
if(value){
(x=10)+=value%10;
reverse(value/10);
}
return x;
}
int main(void){
int a,value;
scanf("%d",&value);
a=reverse(value);
printf("%d\n",a);
return 0;
}
1、C 表示将输入的整数n传给reverse函数
2、C 表示定义一个long型变量res,并初始化
3、B 表示主函数(main)穿进来的值,如果为负数,则取反
4、B 倒置传入的参数number,res10表示将原来res乘以10,再加上number%10;比喻说你传的是123,而res的初始值是0,123%10=3,那么res=3,第二次循环:由于123/10=12,所以res10+number%10=30+2=32,第三次循环:12/10=1,所以res=res10+number%10=320+1=321,第四次循环,number/10=0,结束循环,所以最后的res就是将传进来的值倒置之后的值。
这里给你分析了一下倒置的原理,望采纳!
在C语言中倒序输出可以使用循环结构,通过控制循环变量的增减来实现。但是如果不能从后面往前倒,可以考虑将数据存储在数组中,然后通过循环从数组的最后一个元素开始输出,每次输出一个元素,直到输出第一个元素为止。这样就可以实现倒序输出的效果,且不需要从后往前遍历。另外,如果不能使用数组,也可以通过使用递归函数实现倒序输出,递归函数每次输出最后一个元素,然后递归调用输出剩余元素,直到输出第一个元素。无论是使用数组还是递归函数,都可以实现不从后往前倒的倒序输出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)