/SJXT5-4.C/
#include<stdio.h>
#include<stdlib.h>
int a[1000] = { 0 };
void change(int j, int i)/交换数列里的数值顺序--使他们颠倒过来/
{
int m=0, b, t;
b = i - 1;
while (m < b)
{
t = a[m];
a[m] = a[i];
a[i] = t;
m++;
i--;
}
}
void reverse(long n)
{
int num,i=0,m=0;
do {
num = n % 1000;
printf("%d", num);
putchar(',');
n = n / 1000;
a[i] = n;
i++;
} while (n >= 1000);
//printf("%d", n % 1000);
for (i = 0; i; i++)
a[i] = a[i] % 1000;
change(m, i);
i++;
printf("%d", a[i]);
}
int main()
{
long a;
scanf_s("%ld", &a);
reverse(a);
system("pause");
return 0;
}
输入2004
输出4,0
应输出2,4
#include<stdio.h>
#include<stdlib.h>
void reverse(long n)
{
if (n >= 1000)
reverse(n / 1000);
printf("%d", n % 1000);
putchar(',');
}
int main()
{
long a;
scanf_s("%ld", &a);
reverse(a);
system("pause");
return 0;
}把这个程序用迭代方法写出
我个人理解的是:就是从个位起,每三个数插一个逗号。然后每个三位数中,正数前面的0可以去掉