C语言使用数组解决简单问题
2020-07-16 05:13
260 查看
- 一维数组
数组给数组赋值
1、逐个元素赋值法a[0]=b[0]; a[1]=b[1]; a[2]=b[2] ....
2、使用for循环赋值
int i; for(i=0;i<N;i++){ a[i]=b[i]; }
-
生成随机数,将随机数放到一个数组中,使用for循环求出数组中生成的随机数的最值和最值在数组中的索引值
用N 10定义一个容量为10的数组
使用for循环给数组赋值
使用#include<stdlib.h> 和 rand()%101取得从0到100的整数
再使用for循环嵌套if语句进行交换取得最值
定义m,n得到最值得索引值#include<stdio.h> #include<stdlib.h> #define N 10 int main(){ int a[N]; int max,min; int i,j; int m,n; for(i=0;i<N;i++){ //赋值 a[i]=rand()%101; printf("%4d",a[i]); } printf("\n"); for(j=1;j<N;j++){ if(a[0]>a[j]){ min=a[j]; m=j; a[j]=a[0]; a[0]=min; } if(a[9]<a[j]){ max=a[j]; n=j; a[j]=a[0]; a[0]=a[j]; } } printf("最小值为%d\n",min); printf("最小值的索引值%d\n",m); printf("最大值为%d\n",max); printf("最大值的索引值%d\n",n); return 0; }
-
排序法总结
选择排序法
使用第二个for循环嵌套for循环
所嵌套的for循环将最小的值赋给a[0]
外层for循环将除去a[0]以外的最小值赋值给a[1]
…
依次执行下去使原数组变成从小到大排列的数组
#include<stdio.h> #include<stdlib.h> #define N 10 int main(){ int a[N]; int i,j,t; printf("排序前的数组:"); for(i=0;i<N;i++){ a[i]=rand()%101; printf("%4d",a[i]); } printf("\n"); printf("排序后的数组:"); for(i=0;i<N;i++){ j=i; for(j;j<N;j++){ if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } printf("%4d",a[i]); } return 0; }
- 冒泡排序法
使用双重for循环嵌套if语句
在嵌套的for循环嵌套if语句引入变量 i 实现数组中所有不满足相邻两个数中前一个数小于后一个数就交换 接着再在外层加入for循环完成N次交换使得最小值在a[0]的位置最大值在a[9]的位置
最后使用一个for循环遍历数组
#include<stdio.h> #include<stdlib.h> #define N 10 int main(){ int a[N]; int i,j,t; for(i=0;i<N;i++){ a[i]=rand()%101; printf("%4d",a[i]); } printf("\n"); for(j=0;j<N;j++){ for(i=0;i<N;i++){ if(a[i]>a[i+1]){ t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } for(i=0;i<N;i++){ printf("%4d",a[i]); } }
二维数组
a[i][j];定义一个i行j列的二维i数组
进行矩阵相加,相加的条件具有相同的行和列,实质是两个矩阵行列对应元素两两相加最后输出矩阵
前两个for循环给数组a[] b[]赋值 最后一个for循环将数组a[] b[]每个位置的和赋值给c[]
#include<stdio.h> int main(){ int a[2][2]; int b[2][2]; int c[2][2]; int i,j; for(i=0;i<2;i++){ for(j=0;j<2;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<2;i++){ for(j=0;j<2;j++){ scanf("%d",&b[i][j]); } } for(i=0;i<2;i++){ for(j=0;j<2;j++){ c[i][j]=a[i][j]+b[i][j]; printf("%-2d",c[i][j]); } printf("\n"); } return 0; }
字符串数组
字符串数组内存占用 如:hello
h | e | l | l | o | \0 |
---|
总存在\0占位
字符串逆序输出
#include<stdio.h> int main(){ char str[6]="hello"; int i=5; for(i;i>=0;i--){ printf("%c",str[i]); } return 0; }
相关文章推荐
- 【关于数组两种使用的思考】C语言中用map函数和广搜解决八数码问题(noj1571)
- C语言使用数组和循环解决约瑟夫环问题
- 【c语言】使用数组解决 约瑟夫环问题
- 一步一步SharePoint 2007之十八:解决允许使用简单密码注册用户的问题
- 使用简单标签解决防盗链问题
- C语言使用深度优先搜索算法解决迷宫问题(堆栈)
- 使用qsort对二维字符数组排序疑难问题调试及解决过程
- (C#)使用队列(Queue)解决简单的并发问题
- (翻译整理)如何简单、高效地使用位操作解决问题
- C语言用数组解决约瑟夫环问题...
- 可靠简单的 解决Microsoft.Jet.OLEDB.4.0 不能在64位系统下使用的问题
- 使用Gson解析Json数组遇到的泛型类型擦除问题解决方法
- Log的使用技巧——解决字典和和数组的直接打印时问题
- C语言使用广度优先搜索算法解决迷宫问题(队列)
- ztree的简单使用及常见问题解决 递归所有节点
- 使用C语言解决字符串匹配问题的方法
- 使用Redis模拟简单分布式锁,解决单点故障的问题
- 问题小结(4)-在res里定义数组的简单使用
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
- selenium2 安装、简单使用及浏览器启动问题解决汇总