1.给定一个整数可能为正数,0,负数,统计这个数据的位数. 统计数据的数字位数采用的是: 丢弃个位法 例如:1234567输出7; -12345678输出8;0 输出1

#include int main() {long x;scanf("%ld", &x);int n = 0;//统计位数do {n++;x /= 10;//(从最低位(个位)开始记一位数,丢一位数)} while (x != 0);printf("%d", n);return 0;}

2.给定一个整数可能为正数,0,负数,(从右往左)逆序输出这个数据的每一位. 例如: 1234567 输出 7 6 5 4 3 2 1 例如: -12345678 输出 -8 7 6 5 4 3 2 1

int main() {long x;scanf("%ld", &x);if (x < 0) {printf("-");x = -x;//防止每一位数字前都有负号}if (x == 0) {printf("0\n");return 0;}while (x != 0) {printf("%ld", x % 10);//输出最低位x /= 10;//丢弃最低位}return 0;}

3.给定一个整数可能为正数,0,负数,顺序输出这个数字的每一位. 例如:1234567输出1 2 3 4 5 6 7 例如:-123456789输出 -1 2 3 4 5 6 7 8 9

int main() {long x;scanf("%ld", &x);if (x < 0) {printf("-");x = -x;}if (x == 0) {printf("0\n");return 0;}int c = 0;long t = x;while (t != 0) {c++;t /= 10;}//此时c为x的总位数int p = pow(10, c - 1);while (x != 0) {printf("%ld", x / p);//输出最高位x %= p;//丢弃最高位p /= 10;//p也丢一位}return 0;}