帮忙看看这题吧,才刚开始学C
从键盘读入一个变量n(n为一个5位数),分别使用while循环、for循环和do-while循环,按位逆序输出,如n的值34567,则输出76543。 #include<stdio.h>using namespace std;
int main()
{
//输入
int n; scanf("%d", &n);
int n1, n2, n3;
n1 = n2 = n3 = n;
//while
while(n1) {
printf("%d", n1%10);
n1 /= 10;
}
printf("\n");
//for
for(int i=0; i<5; ++i, n2/=10) {
printf("%d", n2%10);
}
printf("\n");
//do-while
do {
printf("%d", n3%10);
n3 /= 10;
}
while(n3);
return 0;
} #include <stdio.h>
int main(void)
{
int d , k ;
scanf("%d" , & d) ;
k = d ;
while(k) {
putchar('0' + k % 10) ;
k /= 10 ;
}
putchar('\n') ;
for(k = d ; k ; k /= 10) putchar('0' + k % 10) ;
putchar('\n') ;
k = d ;
do {
putchar('0' + k % 10) ;
k /= 10 ;
} while(k) ;
putchar('\n') ;
} jackz007 发表于 2022-10-21 12:58
putchar('0' + k % 10)
能详解这句吗?谢谢. howzyao 发表于 2022-10-21 13:14
putchar('0' + k % 10)
能详解这句吗?谢谢.
k % 10 可以取到 k 的个位数,但是,这个数还不是字符,我们想通过 putchar() 打印输出这个数, 就得先把它变成字符。通过 k % 10 + '0' 就可以把数值变成字符,例如,把 5 变成了 '5' ,这样,就可以用 putchar() 进行打印输出了。 jackz007 发表于 2022-10-21 13:32
k % 10 可以取到 k 的个位数,但是,这个数还不是字符,我们想通过 putchar() 打印输出这个数 ...
谢谢,说到这,我想起了一件事:
以前做的那个popball中,由于想把int换成char以实现绘图画面的计分显示,没少查百度,不会做,迫不得以,就用的是:
char *itoa (int value, char *str, int base );
结果也真能用.
相比你这个,我更喜欢像你这样自己实现的方法. #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n, a, b, c;
if (scanf("%d", &n)) {
a = b = c = n;
while (a) {
printf("%d", a % 10);
a /= 10;
}
printf("\n");
for (; b; b /= 10) {
printf("%d", b % 10);
}
printf("\n");
do {
printf("%d", c % 10);
} while (c /= 10);
printf("\n");
}
return 0;
}
页:
[1]