Sumar separadores de mil a números
Este artículo es una reproducción de: El fin del mundo (linhai_qq)
Método 1:
int i=0,j=0;
void recombination(char a[],long long n)
{
i++;
if(i%4!=0) a[j]=n%10+'0';
else {
a[j]=',';a[++j]=n%10+'0';i++;}
if(n/10!=0)
{
j++;recombination(a,n/10);}
}
#include<stdio.h>
int main()
{
long long k,n;
char a[100];
scanf("%lld",&n);
if(n<0)
{
printf("-");
n=-1*n;
}
recombination(a,n);
for(k=j;k>=0;k--)
printf("%c",a[k]);
return 0;
}
Nota: Este procedimiento se puede implementar en educoder. Sin embargo, la estructura larga y larga del programa no es adecuada para la versión VC ++ del compilador; si desea usarla en la versión VC ++, debe expresar larga y larga con __int64 (o unsigned__int64) y cambiar el carácter de formato%. lld (%llu) a % l64d (o %l64u) bastará.
Método 2: utilizar matrices de caracteres. Este método no se puede implementar en educoder, pero se puede implementar en compiladores de software.
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],c;
int i=0,j=0,m;
while((c=getchar())!='\n')
{
a[i]=c;
++i;
m=i;
}
while(j!=m)
{
putchar(a[j]);
if(j!=m-1)
{
if(m%3==0&&(j+1)%3==0)putchar(',');
else if(m%3==1&&(j+3)%3==0)putchar(',');
else if(m%3==2&&(j+2)%3==0)putchar(',');
}
j++;
}
return 0;}