C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?相关的知识,希望对你有一定的参考价值。
参考技术A #include <stdio.h>#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;
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
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()
以上是关于C语言如何输入一个整数,将整数整体左移1位,且第一位移动到最后一位,输出.如输入“1234”,输出“2341”?的主要内容,如果未能解决你的问题,请参考以下文章