c语言的题目
6个回答
展开全部
更多追问追答
追问
这个输入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;
}
展开全部
// 解决方案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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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也就把所有的数字都拆出来了,不过这时候拿到的数字是反过来的,需要从后向前读取。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你提供思路:先对10取余数,得出最后一位数,然后除去10, 再对10取余得出倒数第二位数,以此类推,当除10等于0时结束。
望采纳
望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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中的格式,和实际输入的格式,必须完全匹配.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询