1.整理课上练习题
二维数组求最大
杨辉三角
2. 整理思维导图
3. 使用指针实现两个变量的交换
4. 整理选择排序算法的思路
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int arr[]={23,90,5,31,7};
int len=sizeof(arr)/sizeof(arr[0]),i,j,temp;
//定义一个变量,保存最小值的下标
int index=0;
//外层循环控制排序次数
for(i=1;i<len;i++)
{
//每次让假定的最小值是待排序中的第一个数
//保证每一次进入内层循环时,index是新的值
index=i-1;
//内层循环找剩余序列的最小值
for(j=i-1;j<len;j++)
{
//选择排序,找下标
if(arr[index]>arr[j])
{
//更新最小值的下标
index = j;
}
}
//找到最小值,跟第一个元素交换
if(index!=i-1)
{
//三杯水
temp = arr[index];
arr[index] = arr[i-1];
arr[i-1] = temp;
}
}
for(i=0;i<len;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
5. 定义一个能存6个数据的整型数组,删除数组中重复的元素
6. (选做)定义一个能存6个数据的整型数组,求最大值并且记录最大值的个数。
7. 整理bzero和memset的使用方法
函数原型:
void bzero(void *s, size_t n);
功能:内存置0
void没有返回值
参数:void *s,要置0的内存空间的首地址
size_t n,置0多少字节
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
char str[]="hello";
puts(str);
//bzero函数,给两个字节置0
bzero(str,2);
int i;
for(i=0;i<6;i++)
{
printf("%c\n",str[i]);
//
//
//l
//l
//o
//
}
return 0;
}
函数原型:
void *memset(void *s, int c, size_t n);
参数:void *s:要置位的内存空间的首地址
int c:内存置位的内容
size_t n:置多大字节
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a=0x12345678; //数据地位存在地址低位
printf("%#x\n",a);
//memset内存置位函数
memset(&a,0xEF,2);
printf("%#X\n",a); //0X1234EFEF
return 0;
}