锯齿数组,即数组的列数不相同的数组,如
{1,2,3,4,5,0}
{6,7,8,0}
{9,10,0}
第一个数组有6个元素,第二个数组有4个元素,第三个数组有3个元素(每组最后一个数据为0)。
请同学们在主函数中定义这样的数组,并传递到函数中打印出各数组元素值,并输出每组数据的累加和。 (提示:可使用指针数组和二级指针进行参数的传递)
/*锯齿数组,即数组的列数不相同的数组,如
请同学们在主函数中定义这样的数组,并传递到函数中打印出各数组元素值,并输出每组数据的累加和。
(提示:可使用指针数组和二级指针进行参数的传递)
*/
#include <stdio.h>
void print_pstr( int *p);
int main()
{
int a1[6]={1,2,3,4,5,0};
int a2[4]={6,7,8,0};
int a3[3]={9,10,0};
int *pstr[3]={a1,a2,a3}; //不采用整体传递,采用单个一维数组数组
for(int i=0;i<=2;i++)
print_pstr(*(pstr+i));
return 0;
}
void print_pstr( int *p)
int add=0;
for(int i=0;*(p+i)!=0;i++)
{ add=add+*(p+i);
printf("%d ",*(p+i));
printf("该行的和是:%d ",add);
void print_pstr( int **p);
int *pstr[3]={a1,a2,a3}; //采用整体传递
print_pstr(pstr);
void print_pstr( int **p)
{int add=0;
for(int j=0;*(*(p+i)+j)!=0;j++)
{printf("%d ",*(*(p+i)+j));
add=add+p[i][j];
printf("该行的和是%d ",add);
感觉很厉害的样子
修改版 嘻嘻嘻
数组的最后一个元素0,想不出什么方法打印出来,我试过用sizeof,但是只能打印每个一维数组的首个元素,好气
/*锯齿数组,即数组的列数不相同的数组,如
{1,2,3,4,5,0}
{6,7,8,0}
{9,10,0}
第一个数组有6个元素,第二个数组有4个元素,第三个数组有3个元素(每组最后一个数据为0)。
请同学们在主函数中定义这样的数组,并传递到函数中打印出各数组元素值,并输出每组数据的累加和。
(提示:可使用指针数组和二级指针进行参数的传递)
*/
#include <stdio.h>
void print_pstr( int *p);
int main()
{
int a1[6]={1,2,3,4,5,0};
int a2[4]={6,7,8,0};
int a3[3]={9,10,0};
int *pstr[3]={a1,a2,a3}; //不采用整体传递,采用单个一维数组数组
for(int i=0;i<=2;i++)
print_pstr(*(pstr+i));
return 0;
}
void print_pstr( int *p)
{
int add=0;
for(int i=0;*(p+i)!=0;i++)
{ add=add+*(p+i);
printf("%d ",*(p+i));
}
printf("该行的和是:%d ",add);
}
#include <stdio.h>
void print_pstr( int **p);
int main()
{
int a1[6]={1,2,3,4,5,0};
int a2[4]={6,7,8,0};
int a3[3]={9,10,0};
int *pstr[3]={a1,a2,a3}; //采用整体传递
print_pstr(pstr);
return 0;
}
void print_pstr( int **p)
{
for(int i=0;i<=2;i++)
{int add=0;
for(int j=0;*(*(p+i)+j)!=0;j++)
{printf("%d ",*(*(p+i)+j));
add=add+p[i][j];
}
printf("该行的和是%d ",add);
}
}
感觉很厉害的样子
修改版 嘻嘻嘻
数组的最后一个元素0,想不出什么方法打印出来,我试过用sizeof,但是只能打印每个一维数组的首个元素,好气