c语言的题目

 我来答
xuzhouliuying
高粉答主

2019-04-04 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部
#include <stdio.h>
int main()
{
int n,k=0,m=0;
scanf("%d",&n);
while(n)
{m=m*10+n%10;n/=10;k++;}
while(k)
{printf("%2d",m%10);m/=10;k--;}
return 0;
}

//运行示例截图:

更多追问追答
追问
这个输入0的话好像没有输出 请问怎么改呢
追答
#include <stdio.h>
int main()
{
int n,k=0,m=0;
scanf("%d",&n);
while(n)
{m=m*10+n%10;n/=10;k++;}
if(k==0) printf("%2d",m);
else while(k)
{printf("%2d",m%10);m/=10;k--;}
return 0;
}
itunes0004
2019-04-05 · TA获得超过4045个赞
知道大有可为答主
回答量:2685
采纳率:69%
帮助的人:504万
展开全部
// 解决方案1,直接输出
#include <stdio.h>
int main()
{
  int number;
  scanf("%d", &number);
  char array[100];
  sprintf(array, "%d", number);
  for(int i = 0; array[i] != '\0'; ++i) {
    printf("%2c", array[i]);
  }
  printf("\n");
  return 0;
}

// 解决方案2, 递归方法
#include <stdio.h>
void seqPrint(int n) {
    if(n/10)
        seqPrint(n/10);
    printf("%2d", n%10);
}
int main()
{
  int number;
  scanf("%d", &number);
  seqPrint(number);
  printf("\n");
  return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左冷禅2014
2019-04-04 · TA获得超过210个赞
知道小有建树答主
回答量:249
采纳率:71%
帮助的人:54.1万
展开全部
#include <stdio.h>

void print(int);

int main()
{
   int num;
   scanf("%d", &num);
   if (num == 0) {
  printf("%2d", num);   
   } else {
      print(num);
   }
   return 0;
}

void print(int num) {
int digits[100];
int factor = 10;
int tmp = num;
int index  = 0;
while (tmp != 0) {
int digit = tmp % factor;
digits[index++] = digit;
tmp /= 10;
}

for (index = index - 1; index >= 0; index--) {
printf("%2d", digits[index]);
}
}

这道题的难点在于如何将一个数字中的所有数字拆分开来,num % 10 获取到的是最后一个数字,num / 10是去掉最后一个数字之后的新数字,这样不断的做直到该数字变成0也就把所有的数字都拆出来了,不过这时候拿到的数字是反过来的,需要从后向前读取。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冒泡君
2019-04-04 · 知道合伙人软件行家
冒泡君
知道合伙人软件行家
采纳数:10 获赞数:23
五年软件开发经验,精通C/C++

向TA提问 私信TA
展开全部
给你提供思路:先对10取余数,得出最后一位数,然后除去10, 再对10取余得出倒数第二位数,以此类推,当除10等于0时结束。
望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3893868
2019-04-04 · TA获得超过5834个赞
知道大有可为答主
回答量:9178
采纳率:83%
帮助的人:376万
展开全部
int x1, x2; char y1, y2; scanf("%d%c%d%c", &x1, &y1, &x2, &y2); 若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格) A.10A└┘20B B.10└┘A20B C.10 └┘A└┘20└┘ B D.10A20└┘B >>>>A 若变量已正确说明为float类型, 要通过语句scanf("%f %f%f", &a, &b, &c);给a赋予10.0, b赋予22.0, c赋予33.0, 不正确的输入形式为()。 A.10 B.10.0,22.0,33.0 22 33 C.10.0 D.10 22 22.0 33.0 33 >>>>B 有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格) int x1, x2; char y1, y2; scanf("%d%d", &x1,&x2); scanf("%c%c", &y1,&y2); A.1020AB B.10└┘20└┘ABC C.10└┘20 D.10└┘20AB AB >>>>D 有如下程序段,对应正确的数据输入是( )。 float x,y; scanf("%f%f", &x,&y); printf("a=%f,b=%f", x,y); A.2.04 B.2.04,5.67 5.67 C.A=2.04,B=5.67 D.2.055.67 >>>>A 规则只有一个, 就是scanf中的格式,和实际输入的格式,必须完全匹配.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式