-
Notifications
You must be signed in to change notification settings - Fork 4
/
7、整数转换为字符串.c
63 lines (54 loc) · 1.36 KB
/
7、整数转换为字符串.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<stdio.h>
void printfInt(int data);
void printfDouble(double data, int count);
void printfDouble(double data, int count){
int d = (int)data;
double x = data - d;
int i, tmp;
int p = 1;
printfInt(d);
printf(".");
for(i = 0; i < count; i++){
p *= 10;
}
tmp = (int)(p*x+0.5); // 在强转时,由于有截断误差,所以加上0.5,保证了小数点最后一位的取值是正确的。
printfInt(tmp);
}
void printfInt(int data){
int q = 1;
if(data > 1000000000){
q = 1000000000;
}else if(data > 100000000){
q = 100000000;
}else if(data > 10000000){
q = 10000000;
}else if(data > 1000000){
q = 1000000;
}else if(data > 100000){
q = 100000;
}else if(data > 10000){
q = 10000;
}else if(data > 1000){
q = 1000;
}else if(data > 100){
q = 100;
}else if(data > 10){
q = 10;
}
for(; q; q /= 10){
printf("%c", '0' + (data/q)%10);
}
}
int main(void){
int number;
double x_number;
int bit;
printf("请输入一个整数: ");
scanf("%d", &number);
// printf("请输入小数,和小数位数: ");
// scanf("%lf%d", &x_number, &bit);
printfInt(number);
printf("\n");
// printfDouble(x_number, bit);
// printf("\n");
}