今日学习了函数的运用,在可以分为主函数和子函数,主函数进行输入和输出,子函数进行运算,子函数的头文件需要在最开始标注,子函数的作用是将运算的结果返回到函数当中然后从主函数中输出,子函数函需要根据主函数的数组类型进行编辑,子函数的return是将返回值返回到子函数里然后由主函数进行输出。
以下为今日练习:
1.打印杨辉三角形的前n行。要求:n自己输入 用函数做fun(int n)
#include<stdio.h>
int fun(int n);
int main()
{
int n;
scanf("%d",&n);
fun(n);
}
int fun(int n)
{
int a[15][15]={};
int i,j;
for(i=0;i<=n;i++)
{
for(j=0;j<i;j++)
{
a[i][j]=1;
if(i>1&&j>0)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
printf("%3d ",a[i][j]);
}
printf("\n\n");
}
}
2..设计一个函数chline,打印指定的字符j行i列字符。在一个简单的测试程序中测试该函数。Fun(j,i,*)
#include<stdio.h>
int fun(int i,int j,char a);
int main()
{
int i,j;
char a;
printf("请输入行数:");
scanf("%d",&i);
printf("请输入列数:");
scanf("%d",&j);
fflush(stdin);
printf("请输入字符:");
a=getchar();
fun(i,j,a);
}
int fun(int i,int j,char a)
{
int m,n;
for(m=1;m<=i;m++)
{
for(n=1;n<=j;n++)
{
printf("%c",a);
}
printf("\n");
}
}
3.求1!+2!+……+n!
#include<stdio.h>
int fun(int n);
int main()
{
int n;
scanf("%d",&n);
printf("%d",fun(n));
}
int fun(int n)
{
int i,j;
int sum1=1,sum2=0;
for(i=1;i<=n;i++)
{
sum1=1;
for(j=1;j<=i;j++)
{
sum1*=j;
}
sum2+=sum1;
}
return sum2;
}
4.一个两位数的素数,当它的数字位置对换后仍为素数,这样的素数称为绝对素数,求出所有两位绝对素数。
要求:prime(int n)用于判断n是否为素数、inv(int n)用来计算n位置对换后的数字
#include<stdio.h>
int prime(int n);
int inv(int n);
int main()
{
int i;
for(i=10;i<100;i++)
{
if(prime(i)==1&&inv(i)==1)
{
printf("%d ",i);
}
}
}
int prime(int n)
{
int m=0;
int i;
for(i=1;i<=n;i++)
{
if(n%i==0)
{
m++;
}
}
if(m==2)
{
return 1;
}
else
{
return 0;
}
}
int inv(int n)
{
int m=0;
int i;
int b;
b=n/10+n%10*10;
for(i=1;i<=b;i++)
{
if(b%i==0)
{
m++;
}
}
if(m==2)
{
return 1;
}
else
{
return 0;
}
}
5.判断一个数是否是素数,i从3到100循环,若i和i+2都是素数,则打印。prime(int
n)用于判断n是否为素数
#include<stdio.h>
int prime(int n);
int main()
{
int i;
for(i=3;i<=100;i++)
{
if(prime(i)==1)
{
if(prime(i+2)==1)
{
printf("%d %d ",i,i+2);
}
}
}
}
int prime(int n)
{
int i;
int m=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
{
m++;
}
}
if(m==2)
{
return 1;
}
else
{
return 0;
}
}