C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数

#include <stdio.h>

#define sum 3+4//宏定义是原封不动的使用used for test4

#include <time.h>//used for test8~9

#include <stdlib.h>//used for test8~9

void test(){//数组输出

//int a[5]={1,2,3,4,5};

printf("array output,look,please...\n");

int a[10];

int i;//for(int i=0;i<10;i++)

printf("a[10]={");

for (i=0; i<10; i++){

a[i]=i;

printf("%d,",a[i]);

}

printf("}");

}

void test1(){//输入数组

int a[5];

printf("\narray input(just the number in the brackets),look please...\n");

scanf("%d %d %d %d %d",&a[0],&a[1],&a[2],&a[3],&a[4]);//可以无限输入但是只录入前五个,后面的作为一个整体。忽视掉。

for (int j=0; j<5; j++) {

printf("%d,",a[j]);

}

}

void test2(){//冒泡排序法

printf("\n冒泡排序法:\n");

int a[4]={34,45,12,53};

for (int k=0;k<4; k++) {

for (int l=k+1;l<4; l++) {

if (a[k]<a[l]) {

int temp=a[l];

a[l]=a[k];

a[k]=temp;

}

}printf("%d,",a[k]);

}

}

void test3(){//沉底排序法

printf("\n沉底排序法:\n");

int a[4]={34,45,12,53};

for (int k=0;k<4; k++) {

for (int l=k+1;l<4; l++) {

if (a[k]>a[l]) {

int temp=a[l];

a[l]=a[k];

a[k]=temp;

}

}printf("%d,",a[k]);

}

}

void test4(){

printf("\n宏定义使用:\n");

int b=3;

printf("%d\n",b*sum);

}

void test5(){//二维数组输出

printf("二维数组输出,look here,please...\n");

int a[2][5]={0,1,2,3,4,5,6,7,8,9};

// int c[2][5]={{0,1,2,3,4},{5,6,7,8,9}};

for (int i=0; i<2; i++) {

for (int j=0;j<5;j++) {

printf("a[%d][%d]=%d  ",i,j,a[i][j]);

}printf("\n");

}

}

void test6(){

printf("二维数组一维输出\n");

int a[4][4]={{32,3,454,56},{65,67,565,45},{423,343,34,27},{4,5,6,56}};

int i,j = 0;//在for内部定义的话,在外部不能用。

for ( i=0; i<4; i++) {

for ( j=0;j<4;j++) {

printf("a[%d]=%d  ",i*4+j,a[i][j]);

}

}

printf("\na[%d]={",i*j);

for (int i=0; i<4; i++) {

for (int j=0;j<4;j++) {

if (i==3 && j==3) {//判断去除最后的逗号

printf("%d",a[i][j]);

}

else

printf("%d,",a[i][j]);//输出附带相邻逗号;

}

}

printf("\b ");

printf("}\n");

}

void test7(){//输出字母列长度;

char a[]="hello";

printf("%s\n",a);

printf("%d\n",(int)sizeof(a));

char b=‘A‘;

printf("%d\n",(int)sizeof(b));

}

void test8(){//已知一个数组int a[100],存放的数是1~99的数,里面有一个重复的数字,找出这个数字。

int a[10]={1,2,3,4,5,6,5,7,8,9};

for (int i; i<10; i++) {

for (int j=i+1; j<10; j++) {

if (a[i]==a[j]) {

printf("重复的数字为:%d\n",a[i]);

}

}

}

}

void test9(){//输入一个数字判断是不是重复过。

int a[10]={1,2,3,4,2,4,5,3,3,9};

int b;

while (1) {

printf("Insert the number you want to check,please...\n");

scanf("%d",&b);

int j=0;

for (int i=0; i<10; i++) {

if(a[i]==b){

j=j+1;

}

}

if (j>=2) {

printf("%d重复过,重复次数为%d\n",b,j);

}

else if (j==1)printf("%d只出现了一次\n",b);

else printf("%d一次都没出现过,亲",b);

}

}

void test10(){//随机产生100个数输出其中任何一对相同的数。

srand((unsigned int)time(0));

int a[100],i,j;

for(int i = 0; i < 100; i++){

a[i] = rand()%100 + 1;

printf("a[%d]=%d\n",i, a[i]);

}

printf("out over.\n");

for (i=0; i<100; i++) {

for (j=i+1; j<100; j++) {

if (a[i]==a[j]) {

printf("a[%d]=a[%d]=%d",i,j,a[i]);

}

}printf("\n");

}

}

int main(int argc, const char * argv[]) {

printf("Hello, World!\n");

test();

test1();

test2();

test3();

test4();

test5();

test6();

test7();

test8();

test9();

test10();

return 0;

}

时间: 2024-08-07 23:10:17

C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数的相关文章

php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法

这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程. 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式排序法 冒泡法 基本思想: 冒泡排序法 案例: 1234567891011121314151617181920212223242526 //简单的$arr=array(0,5,-1); //现在我们把函数毛片封装成函数,利用以后使用//数组默认传递的是值,不是地址,&是地址符function bubb

每日一题10:在排序的二维数组中查找

排序的二维数组是这样的:在每一行中元素是递增的,在每一列中元素也是递增的,比如: 11 34 35 47 51 13 37 40 52 61 19 42 50 79 80 给定一个值,判断其是否在这样排序的二维数组中. 首先,先来生成测试数据,思路如下:1)先选择一种将给定输入按升序排列.2)构造一个二维数组,寻找该数组中以第一个元素为起点,确定一个最大的正方形区域(其宽要么与原数组的行或与原数组的列数相同).3)按规则,在这个正方形中,每个对角线元素都不小于从数组起点到这个元素所构成的正方形区

C语言实现冒泡排序法和选择排序法代码参考

为了易用,我编写排序函数,这和直接在主调函数中用是差不多的. 我认为选择排序法更好理解!请注意 i 和 j ,在写代码时别弄错了,不然很难找到错误! 冒泡排序法: void sort(int * ar,int k) //ar指向数组名,k是元素个数 { int i,j,temp; for(i = 0; i < k - 1; i++){ //比较k-1趟就可以了 for(j = 0; j < k - i -1; j++){ if(ar[j] > ar[j + 1]){ temp = ar[

常用排序法之一 ——冒泡排序法和选择排序法

语言中,常用的算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等.那么从这篇开始,我将分别总结下这几种排序法. 先交代一下,我们将要排序的数组定义为arr[N],即数组arr[]包含N个元素. ## 冒泡排序法(Bubblesort) ## 所谓排序法,就是对一组无序的序列进行有序的排序(从大到小或者从小到大),那么什么叫冒泡排序法,冒泡排序法又是怎么实现数组的有序排列呢. 冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`a

java12-6 冒泡排序法和选择排序法

1.冒泡排序法 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 分析: 第一次比较排序的结果:会把其中最大的数据排到最大的索引处 第二次比较排序后的结果:因为第一次已经把最大的一个数据放到了最大的索引的地方, 所以这次要进行比较的数据比数组里面的元素的数据个数-1个,而第二大的数据也会排到第二大的索引处 第三次比较排序的结果:跟第二次差不多,只是这次要进行比较的数据比数组里面的元素的数据个数还少了2个, 第四次:少3个.. 综上所述,要使数组里面的数据按照从小到大排序,总的比

数组的应用:冒泡排序,折半查找及二维数组的应用

人类思维--计算机逻辑思维 逻辑思维--代码实现 写书法: 描红——临摹——碑贴——自成一体——草 复习: 数组:一维,二维,多维 一维:豆角.连续,同一类型. 定义:数据类型[] 数组名=new 数据类型[长度]{.,.,.,.}; 赋值:数组名[下标] = 值 取值:数组名[下标] 灵活运用:与for循环的结合应用. 1.求最大值,最小值. 2.求总和,平均. 3.随机(生成下标)抽值. 数组的应用: (一).冒泡排序. 1.冒泡排序是用双层循环解决.外层循环的是趟数,里层循环的是次数. 2

静态初始化一个二维数组并将二维数组排序并输出

基本思想:将二维数组存入到一个新的一维数组中,将一维数组排序后,再加以格式控制输出 class work03 { public static void main(String[] args) { int a[][]={ {11,15,32,21},{2,3},{4,6,5}}; int length=0; int k=0; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ length++;//求二维数组元素个数 } k+

137.Single Number II(法1排序法2STL容器map哈希法3位运算法4改进的位运算)

Given an array of integers, every element appears three timesexcept for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement itwithout using extra memory? HideTags Bit Manipulation #pragma once

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(