C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?相关的知识,希望对你有一定的参考价值。

#include <stdio.h>

unsigned long crol(unsigned long n,unsigned int t)

char s[100],p;

p=sprintf(s,"%lu%lu",n,n)/2;

t%=p;

s[t+p]='\\0';

sscanf(s+t,"%lu",&n);

return n;

int main()

unsigned long n;

scanf("%lu",&n);

n=crol(n,1);

printf("%lu\\n",n);

return 0;

参考技术A #include <stdio.h>

int main(int argc, char** argv)

char stack[4];
int top = 0;
while (top < 4)

stack[top++] = getchar();

getchar(); // 读取回车
while (top > 0)

putchar(stack[--top]);

putchar(‘\n’);
return 0;
上面这个是直接把输入的4个字符串倒序输出,跟整数不整数没有关系,你们老师的意思可能是这个:#include <stdio.h>

int main(int argc, char** argv)

int integer;
int ret;
scanf(“%d”, &integer);
while (integer != 0)

ret = ret * 10 + integer % 10;
integer = integer / 10;

printf(“%d\n”, ret);
return 0;
参考技术B <stdio.h> void main() int a[100],n,i,t;printf("输入数字个数:\n"); //此处缺少分号 scanf( "%d", &n );for ( i=0; i<n; i++ )scanf( "%d", &a[i] ); ...

C语言编程:寻找特殊整数

请编写一个程序寻找一种特殊整数:一个 n 位的正整数等于其各位数字的n次方之和。

例如:407=4×4×4+0×0×0+7×7×7。所以407就是一个特殊数。

输入:
正整数的位数n(n<=6)。

输出:
所有此n位特殊数。每个数占一行。若不存在符合条件的特殊数,则输出提示:“No output.”;若存在,则从小到大进行输出。

说明:
假设输入为4,在4位整数中,有3个4位的特殊数,则输出格式为(输出中的1111、2222和9999并不是4位特殊数,只是格式样例):

1111
2222
9999

#include
#include
main()

long
int
a,b,c,d,e,p;
int
n,i,x;
scanf("%d",&n);
a=pow(10,n-1);
b=(pow(10,n))-1;
d=pow(10,i);
c=a;
for(c=a;c<=b;c++)

for(i=n-1;i>=0;i--)

x=(c/d)%10;
e=e+x*x*x;

printf("%d\n",e);
if(e==c)

printf("%ld\n",e);
p=1;


printf("no
output.\n");

不知道你的代码是不是这样的?你看看,然后你的i没有初始化,i的值是多少啊,函数是顺序执行,你的i好像在for(i=n-1;i>=0;i--)才被赋值了。但d已经被fuck了,所以x
=
(c/d)%10,c也被fuck了。。。后面的就都被fuck了。。
参考技术A 你写得一塌糊涂 给你重写一个吧
#include <stdio.h>
int pow(int x, int y)

int ret;
int i;
for(i=1,ret=1;i<=y;i++)

ret *= x;

return ret;

int main()

int top;
int buttom;
int n;
int i;
int j;
int a[6];
int tmp;
int sum;
int count;
printf("input n:\n");
scanf("%d", &n);
for(i=1,top=0;i<=n;i++)

top = top*10 + 9;

for(i=1,buttom=1;i<=n-1;i++)

buttom = buttom*10;

for(i=buttom,count=0;i<=top;i++)

for(j=0,tmp=i,sum=0;j<n;j++)

a[j] = tmp%10;
sum += pow(a[j],n);
tmp /= 10;

if(i==sum)

printf("%d\n",i);
count++;


if(count==0)

printf("No output\n");

return 0;
追问

你这个是C语言程序吗?
不是应该:int main() 吗?
不过答案是对的。。。

追答

前面定义个计算 整数幂运算的函数 pow
下面 有 int main()

参考技术B 定义那么多的int类型的变量这样写累吗?

以上是关于C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?的主要内容,如果未能解决你的问题,请参考以下文章

C语言:任意输入一个三位整数,然后逆序输出。如123变为321。

C语言程序设计中如何输出一个64位的整数

C语言,输入一个整数,从高位开始逐位分割并输出它的各位数字

C语言输入四位整数,判断其是不是是闰年

C语言如何将64位整数转字符串

C语言任意输入一个有五位数字的正整数,逆序输出每一数位上的数字 如输入12345 输出5 4 3 2 1