数组的学习

文章介绍了使用C语言进行基础编程操作,包括打印图形、数组处理(输入、输出、排序、查找、转置)、计算平均值、最大值/最小值等,以及二维数组的应用实例和思维导图展示.
摘要由CSDN通过智能技术生成
打印图形

A

AB

ABC

ABCD

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     char a='A';
  7     int n;
  8     printf("请输入要打印图像的长度");
  9     scanf("%d",&n);
 10     for(int i=0;i<=n;i++)
 11     {
 12         for(int j=0;j<i;j++)
 13         {
 14             printf("%c",a+j);
 15         }
 16         printf("\n");
 17     }
 18 
 19 
 20 
 21     return 0;
 22 }
效果图

   循环输入分数去除最大最小值且计算平均值
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //循环输入分数去除最大最小值且计算平均值
  7     int n;
  8     printf("请输入一共有多少个分数:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {
 13         printf("请输入分数[%d]的值:",i+1);
 14         scanf("%d",&arr[i]);
 15     }
 16     int max=arr[0];
 17     int min=arr[0];
 18     int sum=0,div;
 19     for(int i=0;i<n;i++)
 20     {
 21         if(max<arr[i])
 22             max=arr[i];                     
 23         if(min>arr[i])
 24             min=arr[i];
 25         sum+=arr[i];
 26     }
 27     div=(sum-max-min)/(n-2);
 28     printf("平均值是%d\n",div);
 29 
 30 
 31 
 32 
 33 
 34     for(int i=0;i<n;i++)
 35     {
 36         printf("arr[%d]=%d\n",i,arr[i]);
 37     }
 38 
 39     return 0;
 40 }
效果图

一维数组

输入数组长度,并且循环输入数组元素,循环打印数组元素
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 
  6 {
  7     //输入数组长度,并且循环输入数组元素,循环打印数组元素
  8     int n;
  9     printf("请输入数组的长度:");
 10     scanf("%d",&n);
 11     int arr[n];
 12     for(int i=0;i<n;i++)
 13     {
 14         printf("请输入arr[%d]的值:",i);
 15         scanf("%d",&arr[i]);
 16     }
 17     for(int i=0;i<n;i++)
 18     {
 19         printf("arr[%d]=%d\n",i,arr[i]);
 20     }
 21     return 0;
 22 }    
 计算:数组的平均值,奇数下表对应元素的和,奇数元素的和
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //计算:数组的平均值,奇数下表对应元素的和,奇数元素的和
  7     int n;
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     int sum=0;
 17     int sum_1=0;
 18     int sum_2=0;
 19     int dev=0;
 20     for(int i=0;i<n;i++)
 21     {
 22         sum+=arr[i];
 23         dev=sum/n;
 24         if(i%2!=0)
 25         {
 26             sum_1+=arr[i];
 27         }
 28         if(arr[i]%2!=0)
 29         {
 30             sum_2+=arr[i];
 31         }
 32     }
 33     printf("数组元素平均值:%d\n",dev);
 34     printf("奇数下表对应元素和:%d\n",sum_1);
 35     printf("奇数元素和:%d\n",sum_2);                            
 36     for(int i=0;i<n;i++)
 37     {
 38         printf("arr[%d]=%d\n",i,arr[i]);
 39     }
 40     return 0;
 41 }
 效果图

输出数组的地址,数组名表示首地址
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //输出数组的地址,数组名表示首地址
  7     int n;
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     for(int i=0;i<n;i++)
 17     {
 18         printf("arr[%d]=%d\n",i,arr[i]);
 19         printf("arr[%d]=%p\n",i,&arr[i]);
 20         printf("arr[%d]=%p\n",i,arr+i);
 21     }
 22     for(int i=0;i<n;i++)
 23     {
 24         printf("arr[%d]=%d\n",i,arr[i]);
 25     }   return 0;
 26 }   
 效果图
计算一维数组的最值
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //寻找最大值最小值并输出
  7     int n;                                    
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<5;i++)
 12     {
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     int max=arr[0];
 17     int min=arr[0];
 18     for(int i=0;i<n;i++)
 19     {
 20         if(max<arr[i])
 21             max=arr[i];
 22         if(min>arr[i])
 23             min=arr[i];
 24     }
 25     printf("最大值是:%d\n",max);
 26     printf("最小值是:%d\n",min);
 27 
 28 
 29 
 30     for(int i=0;i<5;i++)
 31     {
 32         printf("arr[%d]=%d\n",i,arr[i]);
 33     }
 34     return 0;
 35 }
效果图

查找数组,如果元素存在一次则输出下表,存在多次则输出次数,不存在则输出不存在
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //查找数组,如果元素存在一次则输出下表,存在多次则输出次数,不存在则输出不存在
  7     int n;
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     int search;
 17     printf("请输入要查找的值:");
 18     scanf("%d",&search);
 19     int count=0;
 20     int num=0;
 21     for(int i=0;i<n;i++)
 22     {
 23         if(search==arr[i])
 24         {                                                                                                     
 25             count++;
 26             num=i;
 27         }
 28     }
 29     if(count==0)
 30         printf("%d不在数组中\n",search);
 31     if(count==1)
 32         printf("%d的下表是%d\n",search,num);
 33     if(count>=2)
 34         printf("%d存在%d次\n",search,count);
 35 
 36 
 37 
 38 
 39 
 40 
 41    /* for(int i=0;i<n;i++)
 42     {
 43         printf("arr[%d]=%d\n",i,arr[i]);
 44     }*/
 45     return 0;
 46 }
效果图

冒泡排序(从小到大)
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //冒泡排序(从小到大)
  7     int n;
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     int temp=0;
 17     for(int i=0;i<n;i++)
 18     {
 19         for(int j=0;j<n-i;j++)
 20         {
 21             if(arr[j]>arr[j+1])
 22             {
 23                 temp=arr[j+1];
 24                 arr[j+1]=arr[j];
 25                 arr[j]=temp;
 26             }
 27         }
 28     }
 29     for(int i=0;i<n;i++)
 30     {   
 31         printf("arr[%d]=%d\n",i,arr[i]);
 32     }   return 0;
 33 } 
效果图

简单选择排序
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //简单选择排序
  7     int n;
  8     printf("请输入数组的长度:");
  9     scanf("%d",&n);
 10     int arr[n];
 11     for(int i=0;i<n;i++)
 12     {   
 13         printf("请输入arr[%d]的值:",i);
 14         scanf("%d",&arr[i]);
 15     }
 16     int max;
 17     int index;
 18     for(int i=0;i<n-1;i++)
 19     {
 20         max=i;
 21         for(int j=i;j<n;j++)
 22         {
 23             if(arr[max]<arr[j])
 24             {
 25                 max=j;
 26             }                              
 27         }
 28         index=arr[i];
 29         arr[i]=arr[max];
 30         arr[max]=index;
 31     }
 32     for(int i=0;i<n;i++)
 33     {   
 34         printf("arr[%d]=%d\n",i,arr[i]);
 35     }   
 36     return 0;
 37 }
效果图

循环输入二维数组,并输出最大值和最大值所在行列
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //循环输入二维数组,并输出最大值和最大值所在行列
  7     int l,r;
  8     printf("请输入行数:");                                
  9     scanf("%d",&l);
 10     printf("请输入列数:");
 11     scanf("%d",&r);
 12     int arr[l][r];
 13     for(int i=0;i<l;i++)
 14     {
 15         for(int j=0;j<r;j++)
 16         {
 17             printf("请输入arr[%d][%d]=",i,j);
 18             scanf("%d",&arr[i][j]);
 19         }
 20     }
 21     int max=arr[0][0];
 22     int line=0;
 23     int row=0;
 24     for(int i=0;i<l;i++)
 25     {
 26         for(int j=0;j<r;j++)
 27         {
 28             if(max<arr[i][j])
 29             {
 30                 max=arr[i][j];
 31                 line=i+1;
 32                 row=j+1;
 33             }
 34         }
 35     }
 36     printf("最大值为:%d\n",max);
 37     printf("最大值在%d行%d列\n",line,row);
 38 
 39 
 40     return 0;
 41 }
效果图

打印杨辉三角
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //打印杨辉三角
  7     int n;
  8     printf("请输入要打印杨辉三角的行数");
  9     scanf("%d",&n);
 10     int arr[n][n];
 11     for(int i=0;i<n;i++)
 12     {   
 13         for(int j=0;j<=i;j++)
 14         {   
 15             if(j==0 || j==i)
 16             {   
 17                 arr[i][j]=1;
 18             }
 19             else
 20             {   
 21                 arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
 22             }
 23             printf("%-4d",arr[i][j]);
 24         }
 25         printf("\n");
 26     
 27     }
 28     return 0;
 29 }  
效果图

二维数组的转置
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     //二维数组的转置
  7     int l,r;
  8     printf("请输入行数");
  9     scanf("%d",&l);
 10     printf("请输入列数");
 11     scanf("%d",&r);
 12     int a[l][r];
 13     int b[r][l];
 14     for(int i=0;i<l;i++)
 15     {
 16         for(int j=0;j<r;j++)
 17         {
 18             printf("请输入arr[%d][%d]=",i,j);
 19             scanf("%d",&a[i][j]);
 20         }
 21     }
 22     for(int i=0;i<l;i++)
 23     {
 24         for(int j=0;j<r;j++)
 25         {
 26             printf("%d ",a[i][j]);
 27         }
 28         printf("\n");
 29     }
 30     for(int i=0;i<l;i++)
 31     {
 32         for(int j=0;j<r;j++)
 33         {
 34             b[j][i]=a[i][j];
 35         }
 36     }
 37     for(int i=0;i<r;i++)
 38     {
 39         for(int j=0;j<l;j++)
 40         {                                                                    
 41             printf("%d ",b[i][j]);
 42         }
 43         printf("\n");
 44     }
 45 
 46     return 0;
 47 }
效果图

思维导图

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值