男友身高165丢人吗:c语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 11:04:00
给一个不多于五位的正整数,要求:1,求出它是几位数;2,分别打印出每一位数字;3,按逆序打印出位数字,例如原来是321,应输出123。
这个怎么写??

// zd_39.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
char buffer[6];
printf("请输入一个不大于五位的整数:\n");
scanf("%s",buffer);
printf("位数是:%d\n",strlen(buffer));
for(int i=0;i<strlen(buffer);i++)
printf("第%d位是:%d\n",i+1,buffer[i]-48);
printf("逆序显示为:\n");
for(i=strlen(buffer)-1;i>=0;i--)
printf("%d",buffer[i]-48);
printf("\n");
return 0;
}

运行结果:
请输入一个不大于五位的整数:
34567
位数是:5
第1位是:3
第2位是:4
第3位是:5
第4位是:6
第5位是:7
逆序显示为:
76543
Press any key to continue

把这个整数转化为字符串(itoa),位数就是字符串长度(strlen),打印用printf("%c",str1[i]),放在for循环中。

---转载---
itoa

将整数转换成字符串,并返回转换结果
(itoa int)

参数

int

整数型。

返回值

由 int 转换所得的字符串。

示例

命令: (itoa 33)

"33"

命令: (itoa -17)

"-17"

main()
{
int a,b,c;
a=3,b=2,c=1;
{
b=2;
if(a>b&&a>c)a=1;
if(=3;
}
printf("%d%d%d\n",a,b,c);
getch();
}

# include <stdio.h>

void solution();

int main() {

// 测试
solution( 34223);

}

void solution(int value) {

int n = value;
int digit = 0;
int m = 1;
int j;

printf("逆序打印:\n");
while (n > 0) {
printf("%d ", n % 10);
n /= 10;
m *= 10;
digit++;
}
printf("\n顺序打印:\n");

n = value;
for (j = 0; j < digit; j++) {
m /= 10;
printf("%d ", n / m);
n -= n / m * m;
}

printf("\n%d 的位数是 %d\n", value, digit);
}

回家想想~