杨辉三角和魔方阵的实现(12.14学习总结)
2017-12-15 00:02
225 查看
今天上完C语言课,感觉受益匪浅,渐渐地觉得自己喜欢上了编程,不容易呀,本科四年就是也学编程,当时为啥觉得那么枯燥难懂呢,虽然现在也觉得挺难,但是可以接受。嘻嘻。
今天主要讲了函数指针和课后题讲解。
//const定义常量
void SelectSort(int *arr,int len)
{
int tmp;
int minIndex;//保存最小值的下标
for(int i=0;i<len-1;i++)
{
minIndex = i;
for(int j=i;j<len;j++)
{
if(arr[minIndex] > arr[j])
{
minIndex = j;
}
}
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
void Show(int *arr,int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
主要思想是保存最小值下标。
4.杨辉三角
void PascalTriangle()
{
#define SIZE 10
int arr[SIZE][SIZE];
int i;
int j;
for(i=0;i<SIZE;i++)
{
for(j=0;j<=i;j++)
{
if(j==0 || i==j)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
}
}
for(i=0;i<SIZE;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}
杨辉三角的思想是第一列和对角线全为1,其他数字是上一行同一列数字加上上一行前一列数字。
今天主要讲了函数指针和课后题讲解。
1.函数指针
int Max(int a,int b) { return a>b ? a : b; } int Min(int a,int b) { return a<b ? a : b; } int Avg(int a,int b) { return (a+b)/2; } int main() { int (*p)(int,int);//指向函数的指针 //int (*p1)[4]; //1常规使用 p = &Max; int x = (*p)(10,20); printf("%d\n",x); //&p因为是普通局部变量,所以存在栈中, 而p因为是函数,所以存在代码段 //2函数名表示函数本身的入口地址 p = Min;//Min等价&Min x = p(10,20); printf("%d\n",x); return 0; }
2.static 和 const区别
//static用于修饰链接属性//const定义常量
3.选择法排序
每次从待排序序列找到最小值,和待排序序列第一个值交换void SelectSort(int *arr,int len)
{
int tmp;
int minIndex;//保存最小值的下标
for(int i=0;i<len-1;i++)
{
minIndex = i;
for(int j=i;j<len;j++)
{
if(arr[minIndex] > arr[j])
{
minIndex = j;
}
}
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
void Show(int *arr,int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main() { int arr[] = {6,9,0,1,4,8,12,34,8,99,22,33,11}; SelectSort(arr,sizeof(arr)/sizeof(arr[0])); Show(arr,sizeof(arr)/sizeof(arr[0])); }
主要思想是保存最小值下标。
4.杨辉三角
void PascalTriangle()
{
#define SIZE 10
int arr[SIZE][SIZE];
int i;
int j;
for(i=0;i<SIZE;i++)
{
for(j=0;j<=i;j++)
{
if(j==0 || i==j)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
}
}
for(i=0;i<SIZE;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}
杨辉三角的思想是第一列和对角线全为1,其他数字是上一行同一列数字加上上一行前一列数字。
相关文章推荐
- struts2表单验证初步及国际化实现(学习总结)
- struts2表单验证初步及国际化实现(学习总结)
- 【javascript】学习总结——动态时钟的实现代码
- 【javascript】学习总结——动态时钟的实现代码
- WCF 学习总结5 -- 消息拦截实现用户名验证
- Logic Java学习总结2----日历的实现
- .NET Romoting 学习总结(三)—— Remoting技术之设计模式实现代码安全
- 哈希算法-----JAVA 源码中实现的HashMap学习总结
- Java容器学习笔记(三) Map接口及其重要实现类学习总结
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- Extjs学习总结之12使用ComboBox实现分页
- USB学习总结3—USB gadget设备驱动实现(usb串口功能)
- android学习总结(五)---简单浏览器demo的实现
- WCF 学习总结7 -- 流模式(Streaming)实现文件上传
- struts2表单验证初步及国际化实现(学习总结)
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- struts2表单验证初步及国际化实现(学习总结)
- Android开发学习笔记:Button事件实现方法的总结
- Ext学习总结——EditPanel的实现
- jQuery入门学习之实现滑动效果:slideUp()和slideDown()小总结