Chinaunix首页 | 论坛 | 博客
  • 博客访问: 268863
  • 博文数量: 84
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 927
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-06 23:00
个人简介

growing

文章分类

全部博文(84)

文章存档

2017年(6)

2016年(61)

2015年(17)

我的朋友

分类: C/C++

2015-09-15 22:19:44

1.每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int money = 0;
  5.     int total = 0;
  6.     int empty = 0;
  7.     int last = 0;
  8.     scanf("%d", &money);
  9.     total = money;
  10.     empty = money;
  11.     while (empty > 1)
  12.     {
  13.         total += empty / 2;
  14.         empty = empty / 2 + empty % 2;
  15.     }
  16.     printf("%d\n", total);
  17.     system("pause");
  18.     return 0;
  19. }
2.判断一个字符串是否为另外一个字符串旋转之后的字符串
第一种:

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <string.h>

  3. int main()
  4. {
  5.     char str1[] = "abcdef";
  6.     char str2[] = "abcdef";
  7.     int len = strlen(str1);
  8.     int i = 0;
  9.     for (i = 0; i < len; i++)
  10.     {
  11.         char tmp = str1[0];
  12.         int k = 0;
  13.         for (k = 0; k < len - 1; k++)
  14.         {
  15.             str1[k] = str1[k + 1];
  16.         }
  17.         str1[len-1] = tmp;
  18.         if (strcmp(str1, str2) == 0)
  19.         {
  20.             printf("是旋转后的字符串\n");
  21.             system("pause");
  22.             return 0;
  23.         }
  24.     }
  25.     printf("不是旋转之后的字符串\n");
  26.     system("pause");
  27.     return 0;
  28. }
第二种:

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <string.h>

  4. char *my_strncat(char *dest, const char *src, size_t count)
  5. {
  6.     assert(dest);
  7.     assert(src);
  8.     char *ret = dest;

  9.     while (*dest)
  10.     {
  11.         dest++;
  12.     }
  13.     while (count--)
  14.     {
  15.         *dest++ = *src++;
  16.     }
  17.     return ret;
  18. }


  19. int main()
  20. {
  21.     char str1[20] = "abcdef";
  22.     char str2[] = "cdef";
  23.     int len1 = strlen(str1);
  24.     int len2 = strlen(str2);
  25.     my_strncat(str1, str1, 6);
  26.     if ((len1 == len2) && (NULL != strstr(str1, str2)))
  27.         printf("是旋转\n");
  28.     else
  29.         printf("不是旋转\n");
  30.     system("pause");
  31.     return 0;
  32. }
小知识:

点击(此处)折叠或打开

  1. //#include <stdio.h>
  2. //#include <stdlib.h>
  3. //
  4. //int main()
  5. //{
  6. //    int arr[10];
  7. //    printf("arr = %p\n", arr);
  8. //    printf("&arr = %p\n", &arr);
  9. //    int *p = arr;
  10. //    int (*q)[10] = &arr;//&arr得到数组的地址,类型是数组指针
  11. //    printf("p = %p\n", p);
  12. //    printf("q = %p\n", q);
  13. //    printf("p+1 = %p\n", p+1);
  14. //    printf("q+1 = %p\n", q+1);
  15. //    system("pause");
  16. //    return 0;
  17. //}

  18. //
  19. //#include <stdio.h>
  20. //int main()
  21. //{
  22. //    int a[5] = { 1, 2, 3, 4, 5 };
  23. //    int *ptr = (int *)(&a + 1);
  24. //    printf("%d,%d", *(a + 1), *(ptr - 1));
  25. //    system("pause");
  26. //    return 0;
  27. //}

  28. //int main()
  29. //{
  30. //    char*p = "abcdef";
  31. //    char arr[] = "abcdef";
  32. //    printf("%c\n", *(arr + 3));
  33. //    printf("%c\n", arr[3]);//p[3] === *(p+3)
  34. //    system("pause");
  35. //    return 0;
  36. //}

  37. //#include <stdio.h>
  38. //extern int num;
  39. //extern char p[];
  40. //extern void fun();
  41. ////extern char *arr;//声明成指针
  42. //int main()
  43. //{
  44. //    printf("%s\n",(char *)(*(int*)p));
  45. //    fun();
  46. //    system("pause");
  47. //    return 0;
  48. //}

  49. #include <stdio.h>

  50. char *pc[10];
  51. int *pi[10];
  52. int(*ppi)[10];
  53. char(*ppc)[10];
  54. int *(*pppi)[10];
  55. char *(*pppc)[10];
  56. int main()
  57. {
  58.     ppc = &pc;
  59.     printf("%d\n", sizeof(pc));//40
  60.     printf("%d\n", sizeof(pi));//40
  61.     printf("%d\n", sizeof(ppi));//4
  62.     printf("%d\n", sizeof(ppc));//4
  63.     printf("%d\n", sizeof(pppi));//4
  64.     printf("%d\n", sizeof(pppc));//4
  65.     printf("%d\n", sizeof(*pc));//4
  66.     printf("%d\n", sizeof(*pi));//4
  67.     printf("%d\n", sizeof(*ppi));//40
  68.     printf("%d\n", sizeof(*pppi));//40
  69.     printf("%d\n", sizeof(*pppc));//40
  70.     system("pause");
  71.     return 0;
  72. }

阅读(1211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~