user-0 提问: 小白求助

回复:
user: user-1
content: #include <stdio.h>  void asc_sort(int *digit, int len); void des_sort(int *digit, int len); int seperate_digit(int *digit, int num); unsigned int new_num(int *digit, int len);  static void print_digit(int *digit, int len);  #define MAX_DIGIT_LEN   10  int main(void) {     int digit[MAX_DIGIT_LEN];     unsigned int  num, len, cycle_cnt = 0;     unsigned int big, small, diff;      printf("Please input a number: ");     scanf("%u", &num);     diff = num;      /*     len = seperate_digit(digit, num);     asc_sort(digit, len);     printf("Asc sort: \n");     print_digit(digit, len);     small = new_num(digit, len);     des_sort(digit, len);     printf("Des sort: \n");     print_digit(digit, len);     big = new_num(digit, len);     diff = big - small;     printf("%u-%u = %u\n", big, small, diff);     cycle_cnt++;     while (num != diff) {         num = diff;         len = seperate_digit(digit, num);         asc_sort(digit, len);         small = new_num(digit, len);         des_sort(digit, len);         big = new_num(digit, len);         diff = big - small;         printf("%u-%u = %u\n", big, small, diff);         cycle_cnt++;     }     */     do {         num = diff;         len = seperate_digit(digit, num);         asc_sort(digit, len);         small = new_num(digit, len);         des_sort(digit, len);         big = new_num(digit, len);         diff = big - small;         printf("%u-%u = %u\n", big, small, diff);         cycle_cnt++;     } while (num != diff);      printf("cycle num = %u, last num = %d\n", cycle_cnt, num);      return 0; }  /* int main(void) {     int n,i,j,a[4],x,t,k,b,c;      scanf("%d",&n);     while(n)     {         n--;         scanf("%d",&x);         a[0]=x/1000;         a[1]=x/100%10;         a[2]=x/10%10;         a[3]=x%10;         for(k=1;;k++)         {             for(i=0;i<4;i++)                 for(j=i+1;j<4;j++)                 {                     if(a[i]>a[j])                     {                         t=a[i];                         a[i]=a[j];                         a[j]=t;                     }                 }             c=a[0]*1000+a[1]*100+a[2]*10+a[3];             b=a[3]*1000+a[2]*100+a[1]*10+a[0];             if((b-c)==6147) break;         }         printf("%d",k);     }     return 0; } */ void des_sort(int *digit, int len) {     int i, j;     int tmp = 0;      for (i = 0; i < len; i++)         for (j = 0; j <len-i-1; j++)             if (digit[j] < digit[j+1]) {                 tmp = digit[j];                 digit[j] = digit[j+1];                 digit[j+1] = tmp;             } } void asc_sort(int *digit, int len) {     int i, j;     int tmp = 0;      for (i = 0; i < len; i++)         for (j = 0; j <len-i-1; j++)             if (digit[j] > digit[j+1]) {                 tmp = digit[j];                 digit[j] = digit[j+1];                 digit[j+1] = tmp;             } }  unsigned int new_num(int *digit, int len) {     int i, num = 0;;      for (i = 0; i < len; i++)         num = num *10 + digit[i];      return num; }  static void print_digit(int *digit, int len) {     int i;      for (i = 0; i < len; i++)         printf("digit[%d] = %d\n", i, digit[i]); }  int seperate_digit(int *digit, int num) {     int i = 0;      while (num) {         digit[i++] = num % 10;         num /= 10;     }      return i; }  我写的一个demo

user: user-2
content: 关于自己是否适合编程的很简单的测试： 在报纸或杂志上随便找一段约1000字的文章，在Word中输入一遍。输完后再参考下面答案：  A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样，且自我感觉很有成就感  A不适合编程（理由：打字准确度偏低、粗心大意） B初级程序员（理由：打字准确度很高、认真细致、自信、理解全角半角概念） C高级程序员（理由：在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证） D软件项目经理（理由：能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业！）  如果想从A变成B的话，到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

user: user-3
content: 6174写错为6147

user: user-4
content: 自己找个例子代进去，在程序中加入printf打印需要查看的值，看程序执行到哪不符合你的预期

user: user-5
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。