- 二维数组作为参数传递,完成二维数组中元素的输入输出
linux@linux:~/test/day9$ ./a.out
13 44 11 32 2 1
13 44 11 32 2 1
linux@linux:~/test/day9$ cat test9.c
#include <stdio.h>
void fun(int arr[2][3])
{
int i,j;
for (i = 0;i<2;i++)
{
for (j = 0;j<3;j++)
{
scanf("%d",&arr[i][j]);
}
}
for (i = 0;i<2;i++)
{
for (j = 0;j<3;j++)
{
printf("%d\t",arr[i][j]);
}
}
putchar(10);
}
int main(int argc, char * argv[])
{
int arr[2][3];
fun(arr);
return 0;
}
优化
#include <stdio.h>
void fun(int (*p)[3],int h,int l); //功能函数的声明
int main(int argc, const char *argv[])
{
int arr[2][3]={0};
fun(arr,2,3);
return 0;
}
//功能函数的定义
void fun(int (*p)[3],int h,int l)
{
int i,j;
for(i=0;i<h;i++)
{
for(j=0;j<l;j++)
{
scanf("%d",*(p+i)+j);
}
}
for(i=0;i<h;i++)
{
for(j=0;j<l;j++)
{
printf("%d\n",*(*(p+i)+j));
}
}
}
- 封装自己的strlen函数,函数原型:int my_strlen(char *s);
linux@linux:~/test/day9$ ./a.out
5
linux@linux:~/test/day9$ cat test10.c
#include <stdio.h>
int my_strlen(char *s)
{
int i = 0;
while(*s)
{
i++;
s++;
}
return i;
}
int main(int argc,char * argv[])
{
char c[6] = "hello";
printf("%d\n",my_strlen(c));
return 0;
}
- 猴子吃桃问题,猴子第一天摘了若干个桃,当即就吃了一半数量的桃,没吃过瘾,又多吃一个,第二天,在剩下的桃里有吃了一半数量的桃,没吃过瘾,又多吃了一个,依此类推,直到第10天,想吃桃的时候,发现只剩下一个桃了,问:猴子第一天摘了多少个桃。while循环实现
linux@linux:~/test/day9$ ./a.out
1534
linux@linux:~/test/day9$ cat test11.c
#include <stdio.h>
int main(int argc,char * argv[])
{
int i = 1,s = 0,n = 1;
int sum;
while (i<10)
{
sum=2*(n+1);
n=sum;
i++;
}
printf("%d\n",sum);
return 0;
}
优化
#include <stdio.h>
int num(int day); //求第num天原始的桃子数
int main(int argc, const char *argv[])
{
int num1 = 1; //第10天的桃子数
int day;
scanf("%d",&day);
//while循环求出的是第i天原始的桃子数
/* while(day>0) //day=1时进入循环
{
num = (num+1)*2;
day--;
}*/
if(day<=10&&day>0)
{
num1 = num(day);
printf("第%d天原始的桃子数%d\n",day,num1);
}
else
{
printf("输入的天数不合理\n");
}
return 0;
}
int num(int day) //求第num天原始的桃子数
{
int num = 1; //第10天的桃子数
while(day<10)
{
num=(num+1)*2;
day++;
}
return num;
}