嵌入式学习-C语言基础-Day10、11
一、思维导图
二、作业
1.定义函数实现杨辉三角(使用指针)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void YangHui(int n,int(*p)[n]);
int main(int argc, const char *argv[])
{
int n;
printf("输入杨辉三角的层数:");
scanf("%d",&n);
int arr[n][n];
YangHui(n,arr);
return 0;
}
void YangHui(int n,int(*p)[n])
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n-i+1;j++)
printf("%-2s"," ");
for(j=0;j<=i;j++)
{
if(j==0||j==i)
{
*(*(p+i)+j)=1;
}
else
{
*(*(p+i)+j)=*(*(p-1+i)+j-1)+*(*(p+i-1)+j);
}
printf("%-4d",*(*(p+i)+j));
}
puts("");
}
}
运行结果
2.递归计算各个数字之和
1234=1+2+3+4=10
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int sum=0;
int Digui(int num)
{
if(num==0)
return 0;
else
return num%10+Digui(num/10);
}
int main(int argc, const char *argv[])
{
int num;
scanf("%d",&num);
Digui(num);
printf("sum=%d\n",Digui(num));
return 0;
}
运行结果