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. 编写一个求和函数sum,使输入sum(2)(3)或输入sum(2,3),输出结果都为5

    昨天的笔试题,做的一塌糊涂,题目考的都很基础而且很细,手写代码对我来说是硬伤啊.其中有一道是这个,然而看到题目的时候,根本没有想到arguments:然后现在就恶补一下. arguments:用在函数 ...

  2. 52 和 52Rc 通过IIC写入数据

  3. 左侧 随着页面滚动固定 fixed. scroll .scrollTop

    1.图片. 要求:随着页面滚动 . 左侧应该顶着 浏览器顶部, 向上回滚, 就恢复原状. 2. 代码: html <div class="all "> <!-- ...

  4. 第一次 刷 WiFi 模块esp8266 感谢创客阿正

    在正哥指导下 第一次 刷 WiFi 模块  少走了 不少弯路 套件里的 两块 机智云  ==== 我的电脑 需要单独供电 先 对应 接好 ic0要记得接gnd 等待上电时要断电重启 等  用助手 返回 ...

  5. sqlserver查看锁表进程及对锁定的表进行解锁

    select request_session_id spid,object_name(resource_associated_entity_id) tableName from sys.dm_tran ...

  6. 微信小程序 获取用户信息授权

    login.wxml界面 获取用户授权可以用微信提供的接口 wx.authorize, 但是获取用户信息的授权用这个接口不会弹出授权窗口 <button class="submit-b ...

  7. 一个python小白的学习之路

    本人是个网管,在佛山工作,现在已经学习了一段时间python了,还是学开基础,但近段时间有一点的突破出来了,找到了一个很好的自学视频,等自己有能力了就想找一个特训班试试.已经看了视频两个星期了,有小小 ...

  8. format() expandtabs() 输入表格数据

    1 输入表格数据 format(self, *args, **kwargs): # known special case of str.format """ S.form ...

  9. 清除cookie

    function clearCookie(){ if(document.cookie.length < 2048){ return; } //cookie大于2kb,清除cookie var c ...

  10. 数据分析处理库--Pandas

    Pandas库: pandas索引与计算: