飞道的博客

3.5 杭电研究生复试2008

345人阅读  评论(0)

1.输入一个长整型的数,从低位起取出奇数位组成一个新的数输出。 


  
  1. #include<stdio.h>
  2. #include<string.h>
  3. char num[ 100000];
  4. int i,j,l;
  5. void main()
  6. {
  7. while( scanf( "%s",&num)!=EOF)
  8. {
  9. getchar();
  10. l= strlen(num);
  11. if(l% 2== 1)
  12. for(i= 0;i<l;i+= 2)
  13. printf( "%c",num[i]);
  14. else
  15. for(i= 1;i<l;i+= 2)
  16. printf( "%c",num[i]);
  17. printf( "\n");
  18. }
  19. }

这是用字符串的方法。


  
  1. #include<stdio.h>
  2. long int n,k,res;
  3. int i;
  4. void main()
  5. {
  6. while( scanf( "%ld",&n)!=EOF)
  7. {
  8. k= 1;
  9. res= 0;
  10. while(n)
  11. {
  12. res+=n% 10*k;
  13. n/= 100;
  14. k*= 10;
  15. }
  16. printf( "%ld\n",res);
  17. }
  18. }

这是直接输入是数字的方法。

 

2.输入 n 个字符串,将它们按字母由小到大的顺序排列并输出。 


  
  1. #include<stdio.h>
  2. char c[ 10000];
  3. int n,i,j;
  4. void swap(char *m,char *n)
  5. {
  6. char temp;
  7. temp=*m;
  8. *m=*n;
  9. *n=temp;
  10. }
  11. void bubblesort(char *k,int l)
  12. {
  13. for(i= 0;i<l;i++)
  14. for(j= 0;j<l-i -1;j++)
  15. if(k[j]>k[j+ 1])
  16. swap(&k[j],&k[j+ 1]);
  17. }
  18. void main()
  19. {
  20. while( scanf( "%d",&n)!=EOF)
  21. {
  22. getchar();
  23. for(i= 0;i<n;i++)
  24. scanf( "%c",&c[i]);
  25. bubblesort(&c,n);
  26. for(i= 0;i<n;i++)
  27. printf( "%c",c[i]);
  28. printf( "\n");
  29. }
  30. }

题意不是特别清楚,我默认为是输入含有n个字符的字符串,然后按照ascii码表默认升序。这种方法就是直接排序。


转载:https://blog.csdn.net/qq_39782006/article/details/104678693
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场