提取不重复的整数C语言解法。
1.先通过求余算出获得输入数据的位数。
2.然后通过位数将数据的每一位拆出来。
3.将数据逆序。
4.将数据去重。
前两步显得有点笨重,但是易于理解。
#include<stdio.h>
int num,bit;
int i,j,k;
int extra;
int reg[20],asb;
int flag = 0;
int main()
{
scanf("%d\n",&num);//输入整型数
//获得数量级
for(bit = 1; extra < num ;bit = bit*10)
{
extra = num%bit;//求余得除数
}
bit = bit/100;
//;
//将数据按位拆开
for(i= 0;bit >= 1;bit = bit/10,i++)
{
reg[i] = num/bit;
num = num - bit*reg[i];
flag++;
}
//逆序
int pau = flag-1;
for(i = 0;i<flag/2;i++,pau--)
{
asb = reg[i];
reg[i] = reg[pau];
reg[pau] = asb;
}
//去重
for(i = 0 ;i < flag ;i++)
{
for(j = i+1;j<flag;j++)
{
if(reg[i]==reg[j])
{
for(k=j;k<flag;k++)
{
reg[k]=reg[k+1];
}
j--;
flag--;
}
}
}
for(j=0;j<flag;j++)
{
printf("%d",reg[j]);
}
}
京公网安备 11010502036488号