1. 初始化

char a[10] = {'1','2','3','4','5'};//指定数组大小并部分赋初值, 其余部分赋值 '\0' ,ASSIC 是 0
char b[] = {'1','2','3','4','5'};//未指定数组大小赋初值, 数组根据元素个数确定大小

  

2. 练习,字符数组把内容逆序,如: "hello" 换为 "olleh"

方法1:(把数组折半遍历和后一半交换数据)

分析:数组长 5 ,那麽只需要前两个与后两个交换即可,中间的不变 5 / 2 = 2,下标从0开始 则只需要使 a[0] 与a[4] 交换; a[1] 与 a[3] 交换

     数组长 6 ,中间的不变 6 / 2 = 3,下标从0开始 则只需要使 a[0] 与a[5] 交换; a[1] 与 a[4] 交换 ; a[2] 与 a[3] 交换即可

#include <stdio.h>
#define M 20
int main(int argc, const char *argv[])
{
   char data[M] = {0};
int i = 0;
   char ch = 0;
int len = 0;    while((ch = getchar()) != '\n') //通过getchar获取字符串,使用scanf时不能获取 ' ' 空格符
{
data[i++] = ch; //把获取的字符放在数组中     
if(len != 20) //数组不能越界, len=20时退出while循环
{     
len+=1;   
}     
else     
{     
break;     
}
} for(i = 0; i < len/2; i++) //折半交换
{
ch = data[i];
data[i] = data[len-1-i];
data[len-1-i] = ch;
}
puts(data); //回车符
return 0;
}

  

方法2:

int main(int argc, const char *argv[])
{
int i=0,j=0;
int len=0;
char ch = 0; while((ch=getchar())!='\n' && len<10)
{
in[i++] = ch;
len++;
} len = strlen(in);
for(i=len-1,j=0;i>=0;i--,j++)
{
out[j]= in[i];
}
printf("%s\n",out);
return 0;
}

3. 查找数组中最大的值

#include <stdio.h>
#define MAX 5
int main(int argc, const char *argv[])
{
int buf[MAX] = {0};
printf("请输入 5 个整数\n");
int i = 0;
for(i=0; i<MAX; i++) //终端获取值放在数组中
{
scanf("%d",&buf[i]);
} int m = 0;
int j = 0;
int tip = 0;
for(i=0;i<MAX;i++) //使用一个中间值,遍历数组比较大小,然后把最大的值放在这个中间值
{
if(m < buf[i])
{
m = buf[i]; //获取最大值,放在中间值 m 中
tip = i; //获取这个数组中最大值 的下标
}
}
printf("max = %d\n",m);
printf("tip = %d\n",tip);
return 0;
}

  

4. 冒泡排序

#include <stdio.h>
#define MAX 6 int main(int argc, const char *argv[])
{
int i = 0;
int j = 0;
int a[MAX] = {0};
int s = 0;
for(i=0;i<MAX;i++) //输入值,存在数组中<br>  
{
scanf("%d",&a[i]);  
} for(i=0;i<MAX-1;i++) //
{
for(j=0;j<MAX-1-i;j++) //每次都是从第一个数开始比较,但是最后一个可定是最大的(最小的)数据,则每次循环的最后一个数据就是最值
{
if(a[j] > a[j+1]) //最大值,下标最大 , 把最大的值依次往后移
{
s = a[j];
a[j] = a[j+1];
a[j+1] = s;
} /*
if(a[j+1] > a[j]) //最小值,下标最大 , 把最小值依次往后移
{
s = a[j];
a[j] = a[j+1];
a[j+1] = s;
}<br>                */
}
}
for(i=0;i<MAX;i++) <br>     {
printf("%d\n",a[i]);
   }
return 0;
}

  

5. 冒泡排序优化

#include <stdio.h>
#define MAX 6 int main(int argc, const char *argv[])
{
int i = 0;
int j = 0;
int a[MAX] = {0};
int s = 0;
for(i=0;i<MAX;i++)  scanf("%d",&a[i]); int min = 0;
for(i=0;i<MAX-1;i++)
{
min = j;
for(j=i+1;j<MAX;j++)
{
if(a[min] > a[j]) //min 时刻获取最小值的下标
{
min = j;
}
}
if(min != i)
{
s = a[min];
a[min] = a[i];
a[i] = s;
}
}
for(i=0;i<MAX;i++)
printf("%d\n",a[i]); return 0;
}

  

C 一维数组 冒泡排序,查最大值的更多相关文章

  1. C#-一维数组——★★冒泡排序★★

    ////★★★★★冒泡排序 ; i < a - ; i++) { ; j < a; j++) { if (age[i] < age[j]) { int zhong = age[i]; ...

  2. C# 一维数组 冒泡排序

    假设有个三个杯子    一个杯子中有一个紫色的乒乓球  一个没有  一个有红色乒乓球    杯子不能动 怎么把紫色和红色的调换呢 主要是先把紫色的放到空的杯子   在把红的放到紫色原来的杯子   再把 ...

  3. PHP里获取一维数组里的最大值和最小值

    <?php $arr = ['10','100','50','90','2','5']; $min = min($arr); $max = max($arr); echo $min.PHP_EO ...

  4. Java求一个数组中的最大值和最小值

    原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/9927186.html 今天在工作中遇到对一个已知的一维数组取出其最大值和最小值,分别用于参与 ...

  5. PHP获取以为数组中的最大值和最小值

    1.PHP获取一维数组中的最大值 <?php $a=array('1','3','55','99'); $pos = array_search(max($a), $a); echo $a[$po ...

  6. C语言:将带头节点的单向链表结点域中的数据从小到大排序。-求出单向链表结点(不包括头节点)数据域中的最大值。-将M*N的二维数组中的数据,按行依次放入一维数组,

    //函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序. //相当于数组的冒泡排序. #include <stdio.h> #include <stdlib.h> ...

  7. c#部分---一维数组、冒泡排序、foreach的用法

    一维数组:2016-10-14 定义方式:{定义的时候,需要数据类型.长度!} 1.int []aa=new int [5];  表示数组里面有5个字符: 2.int []aa=new int []{ ...

  8. C语言《一维数组的学习,冒泡排序》

    #include<stdio.h> /* 一维数组的学习,冒泡排序 soulsjie 20170623 */ void main(){ int a[6]; int i,j,k; print ...

  9. html标签内部简单加js 一维数组求最大值 最小值两个值位置和数字金字塔图形

     html标签内部,简单加js <a href=""></a><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

随机推荐

  1. gprinter佳博打印机androidSDK

    最近在用佳博的SDK做打印的功能,由于一直做的是.net,没有android的基础,这个功能我做了一个多月,包括前期调研佳博打印机的打印方式.佳博打印机有两种打印方式,一种是标签打印,要用到TscCo ...

  2. python 面试题之 生成器

    如下函数执行结果是什么? 答案:  [20, 21, 22, 23] 核心要点:本题重点在对生成器的理解, 生成器具有惰性机制 ,只有在取值的时候才执行. 解析: for 循环遍历列表,执行了两次 第 ...

  3. vue添加页面键盘事件

    我司开发项目,用的是vue+elementUI,做登陆页面的时候,点击enter键的时候要实现和点击登陆按钮一样的功能,所以就百度了一下,于是一通百度之后,就在点击按钮上面直接添加了@keyup.en ...

  4. 关于查询中查询无果,也不报错,inpout标签中的value属性为‘ ’的判断问题

    首先当我们标签中vlue属性可能为' '时,我们一定要在后端进行判断过滤,不然查询会什么都查不出来的,遇到的问题如下 例子如下: 这是一个easyui 中的下拉选,效果如下 当我们默认查询全部时,后台 ...

  5. 周强 201771010141面向对象程序设计(java)》第十七周学习总结

    线程同步 多线程并发运行不确定性问题解决方案:引入线 程同步机制,使得另一线程要使用该方法,就只 能等待. ⚫ 在Java中解决多线程同步问题的方法有两种: 1.- Java SE 5.0中引入Ree ...

  6. plsql插入数据出现乱码问题

    今天在使用plsql 插数据时 ,遇到的问题就是插入进去是乱码问题,在这里总结一下如何解决的 首先声明一下就是: 现在只有客户端,没有服务端,有一些需求就是总是有许多数据要插入进去,但是在使用sql语 ...

  7. React事件绑定与解绑

    React中事件分类 React中事件绑定分为两种: 1.直接添加在React元素上的事件,这是React在基于Virtual DOM的基础上实现的符合w3c规范的合成事件(SyntheticEven ...

  8. i love my girl

    for(int i=0;i<forever;i++) System.out.println("i love my girl!");

  9. Python多进程并发(multiprocessing)

    1.新建单一进程 如果我们新建少量进程,可以如下: 2.使用进程池 是的,你没有看错,不是线程池.它可以让你跑满多核CPU,而且使用方法非常简单. 注意要用apply_async,如果落下async, ...

  10. 中文dumps显示

    json.dumps(tuwen_attention_dict_set, ensure_ascii=False)