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. java 秒时间格式化

    public static String durationFormat(Integer totalSeconds) { if (totalSeconds == null || totalSeconds ...

  2. 页面通过Jquery取值然后传值到后台显示underfined是怎么回事?

    页面通过Jquery取值然后传值到后台显示underfined是怎么回事? 一般情况下第一个如果用jQuery取值的,末尾要用val(),如果用$符号取值的,末尾要加上val. eg: busines ...

  3. Beta冲刺五

    1.团队TSP 团队任务 预估时间 实际时间 完成日期 对数据库的最终完善 120 150 12.2 对学生注册功能的完善--新增触发器 150 140 11.29 对教师注册功能的完善 150 13 ...

  4. vs-code 基础设置

    汉化设置: 最新版的vscode 汉化需要两步 1 ctrl+shift+p   在顶部输入框中输入 language 后选择  configure Display Language  后进入 第二张 ...

  5. 通过重写request.getParameter方法来解决中文乱码问题。

    在原生servlet的商城项目中,BeanUtils.populate方法封装不上注册的参数. 已知BeanUtils.populate方法是封装不上date对象的,于是自定义了一个转换器用来封装Da ...

  6. WPF popup自动关闭

    var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...

  7. Charles几个常用测试功能小结

    Charles应该是目前最常用的代理软件(之一),使用简单.Charles强大的抓包与协议调试代理功能可以满足我们大部分需求,居然还免费(我可没说有破解版).日常测试中,我吗常用的几个功能主要是抓取网 ...

  8. java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout

    java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout at java.lang.Class.getDeclaredM ...

  9. 洛谷 P1047 校门外的树

    #include<iostream> #include<vector> #include<algorithm> using namespace std; ]; in ...

  10. iOS11自定义导航条上移处理

    image.png 在自定义导航条时,通常会继承系统的UINavigationBar,但如上图,在iOS11上,导航条改动了.自定义导航条代码 -(MBNavigationBar *)myNavBar ...