一、实验目的
1.掌握函数定义与调用的方法。
2.掌握实参和形参的对应关系以及函数调用时的数据传递方式。
3.了解函数的嵌套调用和递归调用。
4.掌握局部变量、全局变量、自动变量和静态局部变量的使用方法。
二、实验学时
4 学时
三、实验内容
1.编一函数 void print(int x),功能是输出下列图形
程序代码如下:
1.
①正三角
#include<stdio.h>
void print(int x)
{
int i,m,n;
for(i=1;i<=x;i++)
{
for(n=1;n<=x-i;n++)
{
printf(" ");
}
for(m=1;m<=2*i-1;m++)
{
printf("*");
}
printf("\n");
}
}
int main(void)
{
int x;
printf("请输入行数x:");
scanf("%d",&x);
print(x);
}
②倒三角
#include<stdio.h>
void print(int x)
{
int i,m,n;
for(i=1;i<=x;i++)
{
for(m=1;m<=i;m++)
{
printf(" ");
}
for(n=1;n<=2*x+1-2*i;n++)
{
printf("*");
}
printf("\n");
}
}
int main(void)
{
int x;printf("请输入行数x:");
scanf("%d",&x);
print(x);
}
#include<stdio.h>
#define zero 1e-8
double yyds(double a,double b)
{
double y;
if(a+b<=zero)
printf("输入无效");
else
{
y=(a-b)/(a+b);
printf("y=%lf",y);
}
}
main(void)
{
double a,b;
int c;
printf("请输入a,b:");
c=scanf("%lf,%lf",&a,&b);
while(c!=2)
{
while(getchar()!='\n');
printf("输入无效,请重新输入:");
c=scanf("%lf,%lf",&a,&b);
}
yyds(a,b);
}
①普通调用
#include<stdio.h>
int Nrin(int m,int n)
{
int s;
for(s=1;s%m!=0||s%n!=0;s++);
printf("m和n的最小公倍数=%d\n",s);
}
int Zer(int m,int n)
{
int s;
for(s=m;m%s!=0||n%s!=0;s--);
printf("m和n的最大公约数=%d\n",s);
}
main(void)
{
int m,n;
printf("请输入两个正整数m,n:");
scanf("%d,%d",&m,&n);
Nrin(m,n);
Zer(m,n);
}
②多级调用( xy=最小公倍数最大公约数)
#include<stdio.h>
int Nrin(int m,int n)
{
int s;
for(s=1;s%m!=0||s%n!=0;s++);
return s;
}
int Zer(int m,int n)
{
int x;
x=m*n/Nrin(m,n);
return x;
}
main(void)
{
int m,n;
printf("请输入两个正整数m,n:");
scanf("%d,%d",&m,&n);
printf("m和n的最小公倍数=%d\nm和n的最大公约数=%d\n",Nrin(m,n),Zer(m,n));
}
①非递归:
#include<stdio.h>
int fac(int x)
{
int i;
long j=1;
for(i=1;i<=x;i++)
j*=i;
return j;
}
int main(void)
{
int n,m;
long p;
do
{
printf("输入n,m (n>=m>0):");
scanf("%d,%d",&n,&m);
} while(n<m||n<=0||m<0);
p=fac(n)/(fac(m)*fac(n-m));
printf("%ld\n",p);
return 0;
}
②递归
#include<stdio.h>
int fac(int x)
{
if(x==0||x==1)
return 1;
else
return (x*fac(x-1));
}
int main(void)
{
int n,m;
long p;
do
{
printf("输入n,m (n>=m>0):");
scanf("%d,%d",&n,&m);
} while(n<m||n<=0||m<0);
p=fac(n)/(fac(m)*fac(n-m));
printf("%ld\n",p);
return 0;
}
#include<stdio.h>
int ftss(int x)
{
int i,flag=0;
for(i=2;i<x;i++)
if(x%i==0)
flag=1;
if(flag==1||x==0||x==1)
printf("%d不是一个素数",x);
else
printf("%d是一个素数",x);
}
int main(void)
{
int x;
printf("请输入整数x:");
scanf("%d",&x);
ftss(x);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
long zer(long n)
{
int m;
if ((m=n/10)!=0)
zer(m);
putchar(n%10+'0');
}
int main()
{
long num;
printf("请输入整数number: ");
scanf("%d", &num);
zer(num);
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务