Description
Reverse the input string.
Input
There’re multiple cases. For each case there’s one line containing a string, witch length is no more than 100. Input is end with EOF.
Output
For each test case, output the reversed string on one line.
Sample Input
Copy sample input to clipboard
123
Sample Output
321
18 个解决方案
#1
stack
#2
表示不懂怎么用栈。。。才学c一个月的菜鸟有木有。。。能发代码给我吗?跪求orz
#3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[120];
int i, j;
char tmp;
while (scanf("%s", str) == 1) {
i = strlen(str);
i--;
for (j = 0; j < i; j++, i--) {
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
printf("%s\n", str);
}
return 0;
}
#4
没有限制不能是用STL么?如果没限制可是很简单的
#5
还是把我的代码发上来吧。求大神纠错~~(>_<)~~
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#6
谢谢三楼的代码!~虽然完全看不懂。。。菜鸟飘过
#7
4楼~求指教O(∩_∩)O~
#8
解释一下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[120];
int i, j;
char tmp;
while (scanf("%s", str) == 1) { // 连续输入字符串给str变量,遇到EOF结束
i = strlen(str);
i--; // 求结束符'\0'前一个位置
for (j = 0; j < i; j++, i--) {//字符串反转
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
printf("%s\n", str);
}
return 0;
}
#9
八楼大神谢谢啦啦啦
#10
有木有大神帮我纠错~(>_<)~
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#11
求大神救急。。。ONZ跪求。。。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#12
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0) /*这是一个靠除10取余来实现数的反转
{ 第一次循环:比如,123%10=3;
b=a%10; 然后,123/10=12;
printf("%d",b); 第二次循环:12%10=2;
a=a/10; 12/10=1;
i++; 第三次循环:1%10=1;
} 1/10=0;循环结束。
printf("\n"); //printf("%d\n",b); 原来输入的123,按321输入了。这个循环很简单,就是把输入的
return 0; 整数打散了,到过了输出。楼主仔细想想就出来了。不难理解。
}
*/
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0) /*这是一个靠除10取余来实现数的反转
{ 第一次循环:比如,123%10=3;
b=a%10; 然后,123/10=12;
printf("%d",b); 第二次循环:12%10=2;
a=a/10; 12/10=1;
i++; 第三次循环:1%10=1;
} 1/10=0;循环结束。
printf("\n"); //printf("%d\n",b); 原来输入的123,按321输入了。这个循环很简单,就是把输入的
return 0; 整数打散了,到过了输出。楼主仔细想想就出来了。不难理解。
}
*/
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#13
一些基础的程序还是自己琢磨地好,不然以后碰到问题就迷糊了
#14
我重新写吧,提交后位置乱了。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
/*这是一个靠除10取余来实现数的反转,
第一次循环:比如,123%10=3;
然后,123/10=12;
第二次循环:12%10=2;
12/10=1;
第三次循环:1%10=1;
1/10=0;循环结束。
原来输入的123,按321输入了。这个循环很简单,就是把输入的 整数打散了,倒过来输出。楼主仔细想想就出来了。不难理解。
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
/*这是一个靠除10取余来实现数的反转,
第一次循环:比如,123%10=3;
然后,123/10=12;
第二次循环:12%10=2;
12/10=1;
第三次循环:1%10=1;
1/10=0;循环结束。
原来输入的123,按321输入了。这个循环很简单,就是把输入的 整数打散了,倒过来输出。楼主仔细想想就出来了。不难理解。
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#15
#include <stdio.h>
void Creat_str()
{
char ch;
scanf("%c",&ch);
if('#' != ch)
Creat_str();
if('#'!=ch)
printf("%c",ch);
}
int main(void)
{
Creat_str();
printf("\n");
return 0;
}
单纯想实现倒叙输入的话,用递归更简便。这是我的代码,你参考下。
void Creat_str()
{
char ch;
scanf("%c",&ch);
if('#' != ch)
Creat_str();
if('#'!=ch)
printf("%c",ch);
}
int main(void)
{
Creat_str();
printf("\n");
return 0;
}
单纯想实现倒叙输入的话,用递归更简便。这是我的代码,你参考下。
#16
#include<stdio.h>
void main(){
int a;
int b;
printf("请输入一个整数\n");
scanf("%d",&a);
while(a>0){
b=a%10;
a=a/10;
printf("%d",b);
}
}
void main(){
int a;
int b;
printf("请输入一个整数\n");
scanf("%d",&a);
while(a>0){
b=a%10;
a=a/10;
printf("%d",b);
}
}
#17
想问一下那个递归是怎么实现的,没有看明白。
#18
unsigned int num;
int n;
printf("请输入一个数字:\n");
scanf("%d",&num);
while (num) {
n=num%10;
printf("%d",n);
num/=10;
}
int n;
printf("请输入一个数字:\n");
scanf("%d",&num);
while (num) {
n=num%10;
printf("%d",n);
num/=10;
}
#1
stack
#2
表示不懂怎么用栈。。。才学c一个月的菜鸟有木有。。。能发代码给我吗?跪求orz
#3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[120];
int i, j;
char tmp;
while (scanf("%s", str) == 1) {
i = strlen(str);
i--;
for (j = 0; j < i; j++, i--) {
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
printf("%s\n", str);
}
return 0;
}
#4
没有限制不能是用STL么?如果没限制可是很简单的
#5
还是把我的代码发上来吧。求大神纠错~~(>_<)~~
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#6
谢谢三楼的代码!~虽然完全看不懂。。。菜鸟飘过
#7
4楼~求指教O(∩_∩)O~
#8
解释一下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char str[120];
int i, j;
char tmp;
while (scanf("%s", str) == 1) { // 连续输入字符串给str变量,遇到EOF结束
i = strlen(str);
i--; // 求结束符'\0'前一个位置
for (j = 0; j < i; j++, i--) {//字符串反转
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
printf("%s\n", str);
}
return 0;
}
#9
八楼大神谢谢啦啦啦
#10
有木有大神帮我纠错~(>_<)~
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#11
求大神救急。。。ONZ跪求。。。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
#12
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0) /*这是一个靠除10取余来实现数的反转
{ 第一次循环:比如,123%10=3;
b=a%10; 然后,123/10=12;
printf("%d",b); 第二次循环:12%10=2;
a=a/10; 12/10=1;
i++; 第三次循环:1%10=1;
} 1/10=0;循环结束。
printf("\n"); //printf("%d\n",b); 原来输入的123,按321输入了。这个循环很简单,就是把输入的
return 0; 整数打散了,到过了输出。楼主仔细想想就出来了。不难理解。
}
*/
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0) /*这是一个靠除10取余来实现数的反转
{ 第一次循环:比如,123%10=3;
b=a%10; 然后,123/10=12;
printf("%d",b); 第二次循环:12%10=2;
a=a/10; 12/10=1;
i++; 第三次循环:1%10=1;
} 1/10=0;循环结束。
printf("\n"); //printf("%d\n",b); 原来输入的123,按321输入了。这个循环很简单,就是把输入的
return 0; 整数打散了,到过了输出。楼主仔细想想就出来了。不难理解。
}
*/
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#13
一些基础的程序还是自己琢磨地好,不然以后碰到问题就迷糊了
#14
我重新写吧,提交后位置乱了。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
/*这是一个靠除10取余来实现数的反转,
第一次循环:比如,123%10=3;
然后,123/10=12;
第二次循环:12%10=2;
12/10=1;
第三次循环:1%10=1;
1/10=0;循环结束。
原来输入的123,按321输入了。这个循环很简单,就是把输入的 整数打散了,倒过来输出。楼主仔细想想就出来了。不难理解。
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#include<stdio.h>
int main()
{
int a,b,i;
int n;
while(scanf("%d",&n)!=EOF)
scanf("%d",&a);
i=1;
while(a!=0)
{
b=a%10;
printf("%d",b);
a=a/10;
i++;
}
printf("\n");
return 0;
}
/*这是一个靠除10取余来实现数的反转,
第一次循环:比如,123%10=3;
然后,123/10=12;
第二次循环:12%10=2;
12/10=1;
第三次循环:1%10=1;
1/10=0;循环结束。
原来输入的123,按321输入了。这个循环很简单,就是把输入的 整数打散了,倒过来输出。楼主仔细想想就出来了。不难理解。
i是用来记录你输入的是几位数,若题目没有要求,变量i可以去了。
#15
#include <stdio.h>
void Creat_str()
{
char ch;
scanf("%c",&ch);
if('#' != ch)
Creat_str();
if('#'!=ch)
printf("%c",ch);
}
int main(void)
{
Creat_str();
printf("\n");
return 0;
}
单纯想实现倒叙输入的话,用递归更简便。这是我的代码,你参考下。
void Creat_str()
{
char ch;
scanf("%c",&ch);
if('#' != ch)
Creat_str();
if('#'!=ch)
printf("%c",ch);
}
int main(void)
{
Creat_str();
printf("\n");
return 0;
}
单纯想实现倒叙输入的话,用递归更简便。这是我的代码,你参考下。
#16
#include<stdio.h>
void main(){
int a;
int b;
printf("请输入一个整数\n");
scanf("%d",&a);
while(a>0){
b=a%10;
a=a/10;
printf("%d",b);
}
}
void main(){
int a;
int b;
printf("请输入一个整数\n");
scanf("%d",&a);
while(a>0){
b=a%10;
a=a/10;
printf("%d",b);
}
}
#17
想问一下那个递归是怎么实现的,没有看明白。
#18
unsigned int num;
int n;
printf("请输入一个数字:\n");
scanf("%d",&num);
while (num) {
n=num%10;
printf("%d",n);
num/=10;
}
int n;
printf("请输入一个数字:\n");
scanf("%d",&num);
while (num) {
n=num%10;
printf("%d",n);
num/=10;
}