C_06 二维数组

二维数组 数组里面存放的数据还是数组

数据类型 数组名 [ ] [ ] = { 数据 1,数据 2,数据 3... }
第一个 [ ] 表示行:二维数组里面小数组的个数
第二个 [ ] 表示列:每个小数组里面的数据个数
二维数组的下标仍然是从 0 开始

多维数组:数组里面套数组,在数组里面再套数组

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int array[3][3]={{1,2,3},{4,5,6},{7,8,9}};
//在二维数组中取值
  printf("二维数组中第二个数组第三个数据是:%d\n",array[1][2]);

//二维数组的遍历
  for(int i=0;i<3;i++)  //行
    {
      for(int j=0;j<3;j++)  //列
        {
          printf("array[%d][%d]=%d ",i,j,array[i][j]);
        }
      printf("\n");
  }
  return 0;
}
运行结果

打印九九乘法表

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int a,b,c;
  for(a=1;a<10;a++) //行
    {
      for(b=1;b<=a;b++)
        {
          c=a*b;
          printf("%d*%d=%-3d",b,a,c);   //-3d表示左对齐,占3位
        }
      printf("\n");
    }
  printf("\n");
  return 0;
}
C_06 二维数组_第1张图片
运行结果

定义一个数组,由用户输入 8 个元素的值,求出其内最小值并输出

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int array[8];
  printf("请输入8个数据:");
  for(int d=0;d<8;d++)
    {
      scanf("%d",&array[d]);
    }
  int min=array[0];
  for(int e=1;e<8;e++)
    {
      if(min>array[e])
      {
        min=array[e];
      }
    }
  printf("最小值是:%d\n",min);
  return 0;
}
运行结果

打印出所有“水仙花数”,所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身
例如:153 是一个“水仙花数”,因为 153=1 的三次方 + 5 的三次方 + 3 的三次方
程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  printf("水仙花数有:\n");
  int f,g,h;
  for(int i=100;i<1000;i++)
    {
      f=i/100;
      g=i/10%10;
      h=i%10;
      if(f*100+g*10+h==f*f*f+g*g*g+h*h*h)
        {
          printf("%d\n",i);
        }
    }
  return 0;
}
C_06 二维数组_第2张图片
运行结果

猴子第一天摘下若干个桃子,当即吃了一半,然后又多吃了一个。第二天早上又将剩下的桃子吃掉一半,有多吃了一个,以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩下一个桃子了
求第一天共摘了多少个桃子?

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int l=1;
  for(int j=9;j>0;j--)
    {
      l=(l+1)*2;    
    }
  printf("第一天共摘了%d个桃子\n",l);
  return 0;
}
运行结果

有 1,2,3,4 四个数字,能组成多少个互不相同且无重复的三位数

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int count=0;  
  for(int a=1;a<5;a++)
    {
      for(int b=1;b<5;b++)
        {
          for(int c=1;c<5;c++)
            {
              if(a!=b&&b!=c&&c!=a)
                {
                  count++;
                  printf("%d%d%d ",a,b,c);
                }
            }
        }
    }
  printf("一共有%d个\n",count);
  return 0;
}
运行结果

用键盘输入一个三位数,然后倒序输出这个数字:例如:153->351

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  int d;
  printf("请输入一个三位数:");
  scanf("%d",&d);
  int e,f,g;
  e=d/100;
  f=d/10%10;
  g=d%10;
  int num=g*100+f*10+e;
  printf("%d\n",num);
  return 0;
}
运行结果

一球从 100 米高度落下,每次落地后又反弹回原来高度的一半,然后再落下,求 10 次后,总共经过了多少米?

#include "stdafx.h"
#include 
int main(int argc, char* argv[])
{
  float k=100.0,j=k/2;
  for(int i=2;i<=10;i++)
    {
      k=k+2*j;
      j=j/2;
    }
  printf("总共经过了%f米\n",k);
  return 0;
}
运行结果
End of File

行文过程中出现错误或不妥之处在所难免,希望大家能够给予指正,以免误导更多人,最后,如果你觉得我的文章写的还不错,希望能够点一下喜欢关注,为了我能早日成为签约作者献上一发助攻吧,谢谢!^ ^

你可能感兴趣的:(C_06 二维数组)