DAY8 函数和二维数组

1.输入一个字符串,计算空格的个数

#include 
  2 int main(int argc, const char *argv[])
  3 {
  4     char a[20];
  5     gets(a);
  6     int i;
  7     unsigned long count =0;
        //for(   i

DAY8 函数和二维数组_第1张图片

2.输入一个字符串,计算单词的个数

eg: “good good study”(空格的格式可能是多个)

单词的个数是3,

  1 #include 
  2 int main(int argc, const char *argv[])
  3 {
  4     //good good  study 
  5     char arr[20];
        //有空格,不能用scanf
  6     gets(arr);
  7     int i;
  8     int flag =0;
  9     unsigned long count =0;
 10     for(i=0;arr[i]!='\0';i++)
 11     {
 12         if(arr[i]==32)
 13         {
 14             flag = 0;
 15         }
 16         if(arr[i]!=32&&flag==0)
 17         {
 18             flag =1;
 19             count++;
 20         }
 21     }
 22 
 23     printf("有%ld\n个单词",count);                                          
 24     return 0;
 25 }

DAY8 函数和二维数组_第2张图片

3.矩阵相乘:前提条件A矩阵的列数需要和B矩阵的行数相同

DAY8 函数和二维数组_第3张图片

#include                                        
  2 int main(int argc, const char *argv[])
  3 {
  4     int i,j,k;
  5     int a[2][3];
  6     int b[3][2];
  7     int c[2][2];
  8     for(i=0;i<2;i++)
  9     {
 10         for(j=0;j<3;j++)
 11         {
 12             scanf("%d",&a[i][j]);
 13         }
 14     }
 15 
 16     for(i=0;i<3;i++)
 17     {
 18         for(j=0;j<2;j++)
 19         {
 20             scanf("%d",&b[i][j]);
 21         }
 22     }
 23     int sum;
 24 
 25     for(i=0;i<2;i++)
 26     {
 27         
 28         for(j=0;j<2;j++)
 29         {
 30          sum=0;
 31          for(k=0;k<3;k++)
 32          {
 33             sum+=a[i][k]*b[k][j];
 34          }
 35         c[i][j]=sum;
 36         }
 37     }
 38     for(i=0;i<2;i++)
 39     {
 40         for(j=0;j<2;j++)
 41         {
 42             printf("%d",c[i][j]);
       
 44         }
 45         puts(" ");
 46     }
 47 
 48     return 0;
 49 }

DAY8 函数和二维数组_第4张图片

4.定义有参无返函数实现杨慧三角

参数:二维数组,行,列

  1   1 #include 
  2 #include
  3 void Yanghui(int n,int arr[n][n]);
  4 int main(int argc, const char *argv[])
  5 {
  6     //int line,row;
  7     
  8     int n=0;
  9     scanf("%d",&n);
 10     int arr[n][n];
 11 //  line =sizeof(arr)/sizeof(arr[0]);
 12 //  row = sizeof(arr[0])/sizeof(arr[0][0]);
 13     Yanghui(n,arr);
 14 
 15 
 16     return 0;
 17 }
 18 
 19 void Yanghui(int n,int arr[n][n])
 20 {
 21     int i,j;
 22     for(i=0;i

DAY8 函数和二维数组_第5张图片

5.定义有参无返函数实现二维数组转置?

参数:二维数组,行,列

 #include 
  2 #include
  3 void Erwei(int line,int row, int a[line][row]);
  4 int main(int argc, const char *argv[])
  5 {
  6     /*int n;
  7     scanf("%d",&n);*/
  8     int a[2][3]={1,2,3,4,5,6};
  9     int line = sizeof(a)/sizeof(a[0]);
 10     int row = sizeof(a[0])/sizeof(a[0][0]);
 11     Erwei(line,row,a);
 12     return 0;
 13 }
 14 
 15 void Erwei(int line,int row,int a[line][row])
 16 {
 17     int b[row][line];
 18 
 19     int i,j;
 20     for(i=0;i

DAY8 函数和二维数组_第6张图片

6.输入一个字符串实现单词的逆置

eg:"good good study"

输出:“study good good”

 #include 
  2 #include
  3 int main(int argc, const char *argv[])
  4 {
  5     // study good good
  6     int i,j,k;
  7     char a[20]="";
  8     gets(a);
  9     printf("原字符串是%s\n",a);
 10     //1.整体逆置
 11     i =0;
 12     j = strlen(a)-1;
 13     while(i

DAY8 函数和二维数组_第7张图片

7.输入n个字符串每个字符串20字节,并实现输出

  1 #include 
  2 
  3 
  4 int main(int argc, const char *argv[])
  5 {
  6     int n;
  7     int i;
  8     char arr[n][20];
  9     scanf("%d",&n);
 10     for(i=0;i

DAY8 函数和二维数组_第8张图片

你可能感兴趣的:(算法)