- 博客(31)
- 收藏
- 关注
原创 初步认识数组指针---写一个函数指针数组
/调用,注意优先级结合。int* p[4];//指针数组的结合方式。int (*p)[4]数组指针的变量,区别。
2023-11-23 18:11:07 109
原创 二维数组,输出二维数组任意行列的数
#include <stdio.h>void getHanglie(int *pn,int *pm){ printf("输入行列\n"); scanf("%d%d",pn,pm);}int getThedata(int (*p)[4],int n,int m)//注意返回的值是整型数,定义函数不是void,是int{ int data; data=*(*(p+n)+m);//*(*(p+n)+m) return data;}int main(){
2023-11-14 15:55:02 236
原创 二维数组指针的用法
printf("arr首地址:%p,数据为:%d\n",*(arr+i)+j,*(*(arr+i)+j));//三种数组,指针地址转换。printf("arr首地址:%p,数据为:%d\n",arr[i]+j,*(arr[i]+j));//数组名就是首地址。printf("arr首地址:%p,数据为:%d\n",&arr[i][j],arr[i][j]);
2023-11-13 17:54:01 245
原创 二维数组偏移,指针
printf("arr子类首地址:%p,偏移一位后的地址:%p\n",arr[0],arr[0]+1);//与下方写法不同,但是内容一致。printf("arr子类首地址:%p,偏移一位后的地址:%p\n",*(arr+0),*(arr+0)+1);printf("arr父类首地址:%p,偏移一位后的地址:%p\n",arr,arr+1);对二维数组的偏移,有两种不同的写法,初次认识,见惯不怪。
2023-11-13 16:50:16 119
原创 数组指针,sizeof
/数组3*4,12个字节。//os用8个字节保存地址。}//但是printf("%d ",*arr++)就不可以,区别一个是指针变量,arr是指针常量。//通过指针++读取数组内容。//通过数组名下标读取数组内容。
2023-11-13 15:34:32 42
原创 指针遍历数组
#include <stdio.h>int main(){ int arr[3] ={1,2,3}; int *p=&arr[0]; //p=&arr[0];//指向数组第一个元素,两种都可以 //p = arr;//指向数组名也是可以的 //指针遍历数组 for(int i=0;i<3;i++) { printf("地址:%p %d ",(p+i),*(p+i));//个人感觉很好理解了指针的用法 }打印指针的
2023-11-10 17:14:54 175
原创 /输入三个数a,b,c;输入三个数a,b,c;要求不管怎么输入,在输出的时候,a,b,c就是由大到小的顺序输出,用函数封装实现
#include <stdio.h>void changeData(int *pa,int *pb,int *pc)//通过指针访问地址,来间接的排序大小值{ int tmp;//判断三个数的大小 if(*pa < *pb) { tmp = *pa; *pa = *pb; *pb = tmp; } if(*pa < *pc) { tmp = *pa; *pa = *pc
2023-11-08 17:19:08 75
原创 初学指针,交换两个数,指针函数
#include void changeData(int *pdata1,int *pdata2){ int temp; temp = *pdata1; *pdata1=*pdata2; *pdata2=temp;}int main(){ int data1 = 10; int data2 = 20; printf("交换前:data1=%d,data=%d\n",data1,data2); changeData(&da
2023-11-02 17:48:06 65 1
原创 函数-----封装选择排序函数
1.代码如下;#include <stdio.h>void initArry(int arry[],int len){ int i; printf("请输入数:\n"); for(i=0;i<len;i++) { scanf("%d",&arry[i]); }}void printArry(int arry[],int len){//选择排序 int i; int j; int temp; for(i=0;i<
2023-07-28 18:03:47 68 1
原创 C语言函数---简单封装冒泡排序函数
1.代码如下:#include <stdio.h>void initArry(int arry[],int len)//获取数{ int i; printf("请输入数:\n"); for(i=0;i<len;i++) { scanf("%d",&arry[i]); }}void printArry(int arry[],int len){//冒泡排序 int i; int j; int temp; for(i
2023-07-28 17:47:22 86 1
原创 阶乘函数,自己调用自己的函数
#include <stdio.h>int getJieCheng(int num){ int y; if(num==1)//时刻注意if等于是双等于号 { y=1;//结束标志 }else { y=getJieCheng(num-1)*num;//调用自己的嵌套函数 } return y; }int main(){ int num;//要求的阶乘数 int ret;//阶乘总的数值
2023-07-27 19:47:36 192 1
原创 要求输入10个数,找出最大数以及最大数的下标
#include //要求输入10个数,找出最大数以及最大数的下标int a;int findMax(int arry[],int len){ int i; int max=0; printf("请输入10个数:\n"); for(i=0;i
2023-07-27 18:52:34 799 1
原创 班上10 个学生,封装一个函数,调用该函数后获得班上的平均分,最高分,最低分
1.本题在没有学到后面的内容,所以采用的是全局变量来进行。2.代码如下:#include <stdio.h>int min;//采用全局变量int max ;float getScore(int arry[],int len)//定义函数传参{ int sum=0; int i; max=min=arry[0];//最大最小值初始化,找大小,最小值初始化 for(i=0;i<len;i++) { if(max<arry[i])//找最大
2023-07-27 11:11:34 269 1
原创 编程案例:有两个班的同学,分别是10个人和5个人,分别求这两个班的平均分
#include <stdio.h>void initArry(int arry[],int len)//输入函数{ int i; for(i=0;i<len;i++) { printf("请输入第%d个学生成绩\n",i+1); scanf("%d",&arry[i]); } puts("done!");}void printAverclass(int arry[],int len){ int i; prin
2023-07-21 12:43:00 98 1
原创 学习记录函数
#include <stdio.h>void printArr(int arr[],int len)//形参中不存在数组的概念,及时括号中约定了数组的打小,也无效 // 这里的intarr[],传递的是地址 //形参传递的是一个地址.是数组的首地址{ int i; printf("main 中arr的大小是:%d",sizeof(arr));//在os中用8个字节来表示一个地址 //会提示警告 for(i=0;i<len;i++) {
2023-07-21 08:07:14 58 1
原创 阶乘
求阶乘#include <stdio.h>int getJieCheng(int num){ int y; if(num==1)//时刻注意if等于是双等于号 { y=1; }else { y=getJieCheng(num-1)*num;//调用自己的嵌套函数 } return y; }int main(){ int num;//要求的阶乘数 int ret;//阶乘总的数值 p
2023-07-20 19:05:26 28
原创 二维数组找最大值
1.在二维数组中找到最大的值,与排列不同,并不需要交换数组的值,只需要找到最大的值,赋值给max代码如下 #include <stdio.h>int main(){ int array[3][4] = {1,2,3,4,9,10,11,12,100,9,3,4}; int i; int j; int max; max = array[0][0];//将最大值有一个初始化,可以与其他数组进行对比,找最大 for(i=0;i<3;i++)//遍历二维数组
2023-07-12 18:19:21 5185 1
原创 简单排序
for(j=i+1;j++)//当i=0时,j=1,2,3,得拿第一个数向后面的数遍历。i++)//遍历打印数组结果。temp=a[j];注意,分析排序的原理,并推理出来关系,很好写的出来。1.简单排序,从大到小。
2023-07-12 16:44:19 34 1
原创 斐波那切数列
/求数组的大小 其实这里的数组大小可以不用。puts("斐波那切数列为:");学习记录,数组之斐波那切数列。{ //斐波那切数列。
2023-07-12 09:29:49 42 1
原创 最小公倍数
所以我们先找出两个数的最大值,然后赋值给变量i,然后用变量i分别除去两个数,如果能整除,则就是最小公倍数,否则变量i自加1,//i都能整除两个数,找到最小公倍数了,跳出死循环。printf("最小公倍数%d",(a*b)/i);if(a%i==0&&b%i==0)//满足条件为公约数。printf("最大公约数为%d",i);i--)//从最大的数开始往下找。if(a<b)//判断两个数的大小,让小的数在后面。if(a<b)//判断两个数的大小,让小的数在后面。printf("最小公倍数是:%d",i);
2023-07-09 18:55:29 117 1
原创 最大公约数
1.辗转相除法假设要用辗转相除法求 36 和 24 的最大公约数,则要经历以下步骤:36 ÷ 24 = 1 …… 1224 ÷ 12 = 2 …… 012 为 36 和 24 的最大公约数#include int main(){ int x = 0; int y = 0; scanf("%d %d", &x, &y); while (1) { if (x < y)//比较大小,让小的数放在后面 {
2023-07-09 18:02:41 64
原创 最大公约数,c语言
if(a%i==0&&b%i==0)//满足条件为公约数。printf("最大公约数为%d",i);i--)//从最大的数开始往下找。if(a
2023-07-09 17:46:42 48 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人