Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288723
  • 博文数量: 134
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 118
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-01 14:02
文章分类

全部博文(134)

文章存档

2015年(2)

2014年(4)

2013年(128)

分类: C/C++

2013-08-01 14:13:30

原文地址:数组 _0211 作者:丫叩酱


点击(此处)折叠或打开

  1. 1.#数组的定义
  2. #include <stdio.h>

  3. int main(int argc, const char *argv[])
  4. {
  5.     int a[10]={1,2,3,4,5,6,7,8,9,10}; //只有定义时才可以这样初始化
  6.     int a1[10];
  7.     a1[10]={1,2,3,4}; //错误,不能这样定义
  8.     return 0;
  9. }

  10. 2.#验证数组名是整个数组的首地址
  11. #include <stdio.h>

  12. int main(int argc, const char *argv[])
  13. {
  14.     int a[10]={1,2,3,4,5,6,7,8,9,10};
  15.     printf("%p\n",a);
  16.     printf("%p\n",&a[0]);
  17.     return 0;
  18. }

  19. 3.#验证*
  20. #include <stdio.h>

  21. int main(int argc, const char *argv[])
  22. {
  23.     int a[10]={1,2,3,4,5,6,7,8,9,10};
  24.     printf("%d\n",a[1]);
  25.     printf("%d\n",*(a+1));
  26.     return 0;
  27. }

  28. 4.#验证sizeof函数,用sizeof(a)/sizeof(a[0])代替具体的数组长度
  29. #include <stdio.h>

  30. int main(int argc, const char *argv[])
  31. {
  32.     int i;
  33.     int a[10]={1,2,3,4,5,6,7,8,9,10};
  34.     printf("%d\n",sizeof(a));
  35.     printf("%d\n",sizeof(a[0]));
  36.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  37.         printf("%d\n",a[i]);
  38.     return 0;
  39. }

  40. 5.#分别计算一个有10个元素的整型数组中奇数和偶数的个数并打印输出
  41. #include <stdio.h>
  42. int main(int argc, const char *argv[])
  43. {
  44.     int a[10];
  45.     int i,cnt=0;
  46.     srand(time(NULL));
  47.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  48.     {
  49.         a[i]=rand()%101;
  50.         printf("%6d",a[i]);
  51.         if(a[i]%2==0)
  52.             cnt++;
  53.     }
  54.     printf("\nodd numbers:%d\n",sizeof(a)/sizeof(a[0])-cnt);
  55.     printf("even numbers:%d\n",cnt);
  56.     return 0;
  57. }

  58. 6.#挑出一个有10个元素的整型数组中的最大值及最大值的下标并打印
  59. #include <stdio.h>

  60. int main(int argc, const char *argv[])
  61. {
  62.     int a[10];
  63.     int i,max=0,maxi=0;
  64.     srand(time(NULL));
  65.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  66.     {
  67.         a[i]=rand()%101;
  68.         printf("%6d",a[i]);
  69.     }
  70.     printf("\n");
  71.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  72.     {
  73.         if(a[i]>max)
  74.         {
  75.             max=a[i];
  76.             maxi=i;
  77.         }
  78.     }
  79.     printf("max=%d\nmaxi=%d\n",max,maxi);
  80.     return 0;
  81. }

  82. 7.#将一数列反向如将{1,2,3,4}变换为{4,3,2,1}
  83. #include <stdio.h>

  84. int main(int argc, const char *argv[])
  85. {

  86.     int i,num,t=0;
  87.     printf("enter a number:");
  88.     scanf("%d",&num);
  89.     int a[num];
  90.     srand(time(NULL));
  91.     printf("forward a:");
  92.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  93.     {
  94.         a[i]=rand()%101;
  95.         printf("%6d",a[i]);
  96.     }
  97.     printf("\n");
  98.     for(i=0;i<(sizeof(a)/sizeof(a[0]))/2;i++)
  99.     {
  100.         t=a[i];
  101.         a[i]=a[sizeof(a)/sizeof(a[0])-i-1];
  102.         a[sizeof(a)/sizeof(a[0])-i-1]=t;
  103.     }
  104.     printf("reversed a:");
  105.     for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
  106.         printf("%6d",a[i]);
  107.     printf("\n");
  108.     return 0;
  109. }

  110. 8.#输入一个整数,判断这个数中有没有重复的数字并输出重复的数字有哪些,如:28228,有重复的数字2、8
  111. #include <stdio.h>

  112. int main(int argc, const char *argv[])
  113. {
  114.     int num,i,a[10]={0};
  115.     printf("enter a number:");
  116.     scanf("%d",&num);
  117.     while(num)
  118.     {
  119.         a[num%10]++;
  120.         num/=10;
  121.     }
  122.     printf("repeat number(s):");
  123.     for(i=0;i<10;i++)
  124.     {
  125.         if(a[i]>1)
  126.             printf("%4d",i);
  127.     }
  128.     printf("\n");

  129.     return 0;
  130. }
  131. 9.#验证字符数组部分初始化后,剩余的都填充为0
  132. #include <stdio.h>

  133. int main(int argc, const char *argv[])
  134. {
  135.     int i;
  136.     char str[20]="hello world!";
  137.     for(i=0;i<20;i++)
  138.         printf("%4d",str[i]);
  139.     printf("\n");
  140.     return 0;
  141. }
  142. 10.#验证strcpy函数将源字符串的结束标志'\0'也复制到目的字符串中,目的字符串后面的字符不变
  143. #include <stdio.h>

  144. int main(int argc, const char *argv[])
  145. {
  146.     char str1[20]="hello world!";
  147.     char str2[]="ok";
  148.     strcpy(str1,str2);
  149.     printf("%s\n",str1);
  150.     puts(&str1[3]);
  151.     return 0;
  152. }
  153. 11.#验证strcmp(d,s)函数,d>s输出大于0的数,=输出0,小于输出<0的数
  154. #include <stdio.h>

  155. int main(int argc, const char *argv[])
  156. {
  157.     char strd[]="hello world!";
  158.     char strs[]="ok!";
  159.     printf("%d\n",strcmp(strd,strs));
  160.     return 0;
  161. }
  162. 12.#验证strcat(d,s)函数的拼接
  163. #include <stdio.h>

  164. int main(int argc, const char *argv[])
  165. {
  166.     char strd[20]="hello world!";
  167.     char strs[]="ok!";
  168.     strcat(strd,strs);
  169.     printf("%s\n",strd);
  170.     return 0;
  171. }
  172. 13.#fgets与fputs函数可接收/输出带有空格的字符串,并且有字符串输入的长度限制,不会越界
  173. #include <stdio.h>

  174. int main(int argc, const char *argv[])
  175. {
  176.     char str[100];
  177.     printf("str=");
  178.     fgets(str,32,stdin);
  179.     fputs(str,stdout);
  180.     return 0;
  181. }
  182. 14.#计算一个二维数组各行和各列的值并输出
  183. #include <stdio.h>

  184. int main(int argc, const char *argv[])
  185. {
  186.     int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
  187.     int i,j;
  188.     int suml=0,sumc=0;
  189.     for (i = 0; i < 3; i++)
  190.     {
  191.         suml=sumc=0;
  192.         for (j = 0; j < 3; j++)
  193.         {
  194.             suml+=a[i][j];
  195.             sumc+=a[j][i];
  196.         }
  197.         printf("suml%d=%2d\t",i,suml);
  198.         printf("sumc%d=%2d\n",i,sumc);
  199.     }
  200.     return 0;
  201. }
  202. 15.#随机生成一个行列都为n的二维数组,输出该二维数组并将其转置后输出
  203. #include <stdio.h>

  204. int main(int argc, const char *argv[])
  205. {
  206.     int i,j,n,t=0;
  207.     printf("n=");
  208.     scanf("%d",&n);
  209.     int a[n][n];
  210.     srand(time(NULL));
  211.     for (i = 0; i < n; i++)
  212.     {
  213.         for (j = 0; j < 3; j++)
  214.         {
  215.             a[i][j]=rand()%101;
  216.         }
  217.     }

  218.     printf("forward:\n");
  219.     for (i = 0; i < 3; i++)
  220.     {
  221.         for (j = 0; j < 3; j++)
  222.             printf("%4d",a[i][j]);
  223.         printf("\n");
  224.     }
  225.     for (i = 0; i < 3; i++)
  226.     {
  227.         for (j = 0; j < i; j++)
  228.         {
  229.             t=a[i][j];
  230.             a[i][j]=a[j][i];
  231.             a[j][i]=t;
  232.         }
  233.     }
  234.     printf("reserved:\n");
  235.     for (i = 0; i < 3; i++)
  236.     {
  237.         for (j = 0; j < 3; j++)
  238.             printf("%4d",a[i][j]);
  239.         printf("\n");
  240.     }
  241.     return 0;
  242. }
  243. 16.#输入一个字符串,删除该字符串中的空格
  244. #include <stdio.h>

  245. int main(int argc, const char *argv[])
  246. {
  247.     int i,j;
  248.     char str[100];
  249.     printf("str=");
  250.     fgets(str,32,stdin);
  251.     for (i = 0; i < sizeof(str); i++)
  252.     {
  253.         if(str[i]==' ')
  254.         {
  255.             j=i;
  256.             while(str[j+1])
  257.             {
  258.                 str[j]=str[j+1];
  259.                 j++;
  260.             }
  261.             str[j]='\0';
  262.             i--;
  263.         }
  264.     }
  265.     printf("str=%s\n",str);
  266.     return 0;
  267. }
  268. 17.#随机生成一个数组,将奇数放在数组的前面,偶数放在数组的后面
  269. #include <stdio.h>

  270. int main(int argc, const char *argv[])
  271. {
  272.     int i,j,k=0,n,tmp;
  273.     printf("enter a number:");
  274.     scanf("%d",&n);
  275.     
  276.     int a[n];
  277.     srand(time(NULL));
  278.     printf("Before:");
  279.     for (i = 0; i < n; i++)
  280.     {
  281.         a[i]=rand()%101;
  282.         printf("%4d",a[i]);
  283.     }
  284.     printf("\nAfter :");
  285.     for (i = 0; i < n-k; i++)
  286.     {
  287.         tmp=a[i];
  288.         if(a[i]%2==0)
  289.         {
  290.             for (j = i+1; j < n; j++)
  291.                 a[j-1]=a[j];
  292.             a[j-1]=tmp;
  293.             k++;
  294.             i--;
  295.         }
  296.     }
  297.     for (i = 0; i < n; i++)
  298.         printf("%4d",a[i]);
  299.     printf("\n");
  300.     
  301.     return 0;
  302. }

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