當前位置:編程學習大全網 - 編程軟體 - 高分求解C語言編程題

高分求解C語言編程題

#include<stdio.h>

int IsNumberEqual(int number);

void ntos (int number, int c[]);

void sort (int a[]);

int getmaxn(int a[]);

int getminn(int b[]);

int main()

{

int num;

int s[4];

int i;

do

{

printf("Input:");

scanf("%d",&num);

}while(IsNumberEqual(num));

i=0;

while(num!=6174 & i<10000)

{

ntos(num,s);

sort(s);

num=getmaxn(s)-getminn(s);

i++;

}

printf("Total:%d\n",i);

//system("PAUSE");

return 0;

}

int IsNumberEqual(int number)

{

int s[4];

ntos(number,s);

if(s[0]==s[1] ||s[1]==s[2] ||s[2]==s[3] ||s[3]==s[0]) return 1;

return 0;

}

void ntos (int number, int c[])

{

c[0]=number/1000;

number%=1000;

c[1]=number/100;

number%=100;

c[2]=number/10;

number%=10;

c[3]=number;

}

void sort(int a[])

{

int i,j,temp;

for(i=0;i<3;i++)

for(j=i+1;j<4;j++)

{

if(a[i]>a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

int getmaxn(int a[])

{

return a[3]*1000+a[2]*100+a[1]*10+a[0];

}

int getminn(int b[])

{

return b[0]*1000+b[1]*100+b[2]*10+b[3];

}

輸出叠代次數,超過10000次就結束(不過貌似不會發生)

  • 上一篇:SQL和Python 哪個更容易自學?
  • 下一篇:學汽車電子與控制方向,需要具備哪些知識?
  • copyright 2024編程學習大全網