
C语言#数组
是旭旭呀
我们要学会长大,一个人抵过千军万马
展开
-
插入有序问题
问题引入:将一个整数m插入到升序数组a中去,使得插入后的数组a任然有序。1 2 3 4 7 8 91 2 3 4 5 7 8 9#include<stdio.h>int main(){ printf("请输入数组元素个数n\n"); int n;//数组元素个数 scanf("%d",&n); int a[n]; int data;//保存当前输入的数据 int k = 0;//当前输入的是第几个数据 int m; int i,j; for(m=0;m<原创 2020-11-03 21:02:08 · 593 阅读 · 0 评论 -
求二维数组中的鞍点元素
鞍点:二维数组中,列最小,且行最大的元素问题引入:求一个二维数组中的鞍点1 7 -8 611 -12 3 1310 6 4 501 0 3 8##include <stdio.h>int main(){ int a[4][4] = {1,7,-8,9,11,-12,3,13,10,6,4,50,1,0,3,8}; int i,j,max,j_max,k,flag = 0; for(i = 0;i < 4;i++) {原创 2020-11-03 20:57:51 · 242 阅读 · 0 评论 -
求二维数组中的山顶元素
山顶元素:此处比周围高,这个数的值比它的上、下、左、右、都要大。问题引入:求一个二维数组中山顶元素的个数1 、 9 、 -8 、 7、11、 -12 、3、 1、10 、 6 、 4、 5、1 、0 、 3 、 8、此二维数组中山顶元素有:9、7、11、8#include <stdio.h>int main(){ int a[4][4] = {1,9,-8,7,11,-12,3,1,10,6,4,5,1,0,3,8}; int原创 2020-11-03 20:35:59 · 2977 阅读 · 0 评论 -
求斐波拉契数列前n项和问题
斐波拉契数列:前两项之和等于后一项。1, 1, 2, 3, 5, 8, 13,21,34,55…例子:求斐波拉契数列前二十项之和##include <stdio.h>int main(){ int i; int a[20] = {1,1}; for(i = 2;i < 20;i++) { a[i] = a[i - 1] + a[i - 2]; } int sum = 0; for(i = 0;i < 20;i++) { sum += a[i]; }原创 2020-11-03 20:28:18 · 708 阅读 · 1 评论 -
折半查找
问题引入:在一个递增数组中a[10],查找一个值为x的元素,如果找到了就输出值为x的元素的下标,如果没有输出-1。算法一:遍历法for(i = 0;i < 10;i++){ if(a[i] == x) { printf("%d\n",i); break; }}printf("%d\n",-1);算法二:折半查找法#include<stdio.h>...原创 2020-11-03 20:22:22 · 351 阅读 · 2 评论 -
选择排序
选择排序:(1)先把一个数组里面的最大值找到;(2)把这个最大的元素和最后一个位置互换。#include <stdio.h>int main(){ int n,i,max,i_max,tmp; int a[10]; for(i = 0;i < 10;i++) { scanf("%d",&a[i]); } for(n = 0;n < 9;n++) { max = 0; i_max = 0; for(i = 0;i < 10 - n;原创 2020-11-03 20:10:10 · 101 阅读 · 1 评论 -
冒泡排序
冒泡排序:比较相邻的两个元素,把元素中较大的值往后移。#include <stdio.h>int main(){ int i,n,tmp; int a[10]; for(i = 0;i < 10;i++) { scanf("%d",&a[i]); } for(n = 0;n < 9;n++) { for(i = 0;i < 9 - n;i++) { if(a[i] > a[i + 1]) { tmp = a[i原创 2020-11-03 20:05:46 · 100 阅读 · 0 评论