C语言一维数组、二维数组

本文介绍了使用C语言实现的基础编程示例,包括打印图形、处理一维数组(如获取平均值、查找、排序和冒泡排序)、二维数组的应用(最大值、杨辉三角和数组逆置),展示了基本的控制结构和数据操作技巧。
摘要由CSDN通过智能技术生成

1.打印图形

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int n; //定义n,终端输入
  7     printf("please enter n:");
  8     scanf("%d",&n);
  9     for(int i=1;i<=n;i++) //循环行
 10     {
 11         char m='A';  //定义m,每次内循环后重置m
 12         for(int j=1;j<=i;j++) //循环列
 13         {
 14             printf("%c",m); //打印A
 15             m++;            //m++,ASCII+1,打印ABCD
 16         }
 17         printf("\n");
 18     }
 19     return 0;
 20 }  

运行结果:

2.循环输入10位评委的分数,除去最大值和最小值,计算平均值

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int arr[10];  //定义数组
  7     for(int i=0;i<10;i++) //循环输入
  8     {
  9         printf("please enter %d num:",i+1);
 10         scanf("%d",&arr[i]);
 11     }
 12     int max,min,sum=0; //定义最大、最小
 13     max=min=arr[0];  
 14     for(int i=0;i<10;i++) //循环比较大小
 15     {
 16         sum+=arr[i];
 17         if(max<=arr[i])
 18             max=arr[i];
 19         if(min>=arr[i])
 20             min=arr[i];
 21     }
 22     float ave=(sum-max-min)/8; //计算平均值            
 23     printf("ave=%.2f\n",ave);
 24     return 0;
 25 }

运行结果:

3.一维数组所有案例

程序代码:

1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int n;
  7     printf("please enter num:");
  8     scanf("%d",&n);
  9     int arr[n];
 10     for(int i=0;i<n;i++)
 11     {
 12         printf("please enter %d num:",i+1);
 13         scanf("%d",&arr[i]);
 14     }
 15 /*//一维数组的最值  
 16     int max,min;
 17     max=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("max=%d\n",max);                            
 26     printf("min=%d\n",min);
 27 */
 28 /*//一维数组的查找
 29     int key; //定义寻找值key
 30     printf("please enter key:");
  scanf("%d",&key);
 32     int count=0,index; //定义计数count,下标inde
 33     for(int i=0;i<n;i++) //循环查找
 34     {
 35         if(key==arr[i])
 36         {                                              
 37             count++;
 38             index=i;
 39         }
 40     }
 41     if(count==0) //不存在
 42         printf("unexist\n");
 43     else if(count==1) //存在一个,打印下标
 44         printf("exist and i=%d\n",index);
 45     else
 46         printf("exist %d\n",count); //存在多个,打印个>
 47 */
 48 /*//一维数组的冒泡
 49     for(int i=1;i<n;i++) //外层循环轮数
 50     {
 51         for(int j=0;j<n-i;j++) //内层循环比较次数,数组
 52         {
 53             if(arr[j]>=arr[j+1]) //判断并交换
 54             {
 55                 int t=arr[j];
 56                 arr[j]=arr[j+1];
 57                 arr[j+1]=t;
 58             }
 59         }
 60     }
61     for(int i=0;i<n;i++) //循环打印 
 62         printf("%d ",arr[i]);
 63     printf("\n");
 64 */
 65 //一维数组简单选择
 66     for(int i=0;i<n-1;i++)                             
 67     {
 68         int min=i;
 69         for(int j=i+1;j<n;j++)
 70         {
 71             if(arr[min]>arr[j])
 72             {
 73                 min=j;
 74             }
 75         }
 76         if(i!=min)
 77         {
 78             int t=arr[i];
 79             arr[i]=arr[min];
 80             arr[min]=t;
 81         }
 82     }
 83     for(int i=0;i<n;i++)
 84         printf("%d ",arr[i]);
 85     printf("\n");
 86     return 0;
 87 }

一维数组最值运行结果:

一维数组查找运行结果:

一维数组冒泡运行结果:

一维数组简单排序运行结果:

4.二维数组案例题

4.1.二维数组计算最大值以及对应行、列

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int arr[2][3]; //定义二维数组
  7     for(int i=0;i<2;i++) //循环输入
  8     {
  9         for(int j=0;j<3;j++)
 10         {
 11             printf("please enter num:");
 12             scanf("%d",&arr[i][j]);
 13         }
 14     }
 15     int max; //定义最值
 16     max=arr[0][0];
 17     int indexi=0,indexj=0; //定义最值下标为0,防止第一个数为最大值
 18     for(int i=0;i<2;i++)  //循环比较
 19     {
 20         for(int j=0;j<3;j++)
 21         {
 22             if(max<=arr[i][j]) //替换
 23             {
 24                 max=arr[i][j];
 25                 indexi=i;
 26                 indexj=j;
 27             }
 28         }
 29     }
 30     printf("max=%d\n",max);
 31     printf("max indexi:%d\n",indexi);
 32     printf("max indexj:%d\n",indexj);
 33     return 0;
 34 }   

运行结果:

4.2、杨辉三角

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int n; //定义n,终端输入
  7     printf("please enter num:");
  8     scanf("%d",&n);
  9     int arr[n][n]; //杨辉三角,行列相等,定义数组
 10     for(int i=0;i<n;i++) //循环打印,行
 11     {
 12         for(int j=0;j<=i;j++) //列
 13         {
 14             if(j==0||i==j) //规律
 15                 arr[i][j]=1;
 16             else
 17             {
 18                 arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
 19             }
 20             printf("%-4d",arr[i][j]);
 21         }
 22         printf("\n");
 23     }
 24     return 0;                                                                        
 25 }

运行结果:

4.3、逆置

程序代码:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<stdlib.h>
  4 int main(int argc, const char *argv[])
  5 {
  6     int arr[2][3]; //定义数组
  7     for(int i=0;i<2;i++) //循环输入
  8     {
  9         for(int j=0;j<3;j++)
 10         {
 11             printf("please enter num:");
 12             scanf("%d",&arr[i][j]);
 13         }
 14     }
 15     int a[3][2]; //定义逆置接收数组
 16     for(int i=0;i<2;i++) //循环逆置,i、j交换
 17     {
 18         for(int j=0;j<3;j++)
 19         {
 20             a[j][i]=arr[i][j];
 21         }
 22     }
 23     for(int i=0;i<3;i++)//循环打印                                                   
 24     {
 25         for(int j=0;j<2;j++)
 26         {
 27             printf("%d ",a[i][j]);
 28         }
 29         printf("\n");
 30     }
 31     return 0;
 32 }

运行结果:

流程图:

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值