实验报告
实验目的:
1. 熟练掌握函数的定义与使用
实验内容:
1. 有如下的一段程序,程序调用maxt()函数将两个数中的最大值输出,并根据最大值打印相应行的#号,请定义printat()函数、maxt()函数与printnx()函数并将主程序补充完整,使之正常运行。
#include <stdio.h>
void main()
{
int a=3,b=4,max;
printat();//打印一行@号
printf("打印ab行的#号\n");
max=maxt(a,b);
printnx(max);//打印max行#号
}
1).无参无返回值函数
函数名 | printat |
函数返回值 | 无返回值 |
函数参数 | 无参数 |
函数功能 | 打印一行@号 |
2)有参无返回值函数
函数名 | printnx |
函数返回值 | 无返回值 |
函数参数 | 有一个参数,(形式参数),是整型 |
函数功能 | 打印n行#号 |
3).有参有返回值函数
函数名 | maxt |
函数返回值 | 有返回值,函数类型为整型 |
函数参数 | 有两个整型的参数 |
函数功能 | 返回a与b中的最大值 |
阅读知识:.如何在主函数中使用用户自定义的函数
函数调用基础知识
用户自定义函数在main()函数中调用时的三种方式:
1. 函数语句
把函数调用作为一个语句,适用无返回值的函数
printstar( );
2函数表达式
函数出现在一个表达式中,适用有返回值的函数
c=2*max(a,b);
3函数参数
函数调用作为一个函数的实参,适用有返回值的函数
m=max(a,max(b,c))
#include <stdio.h>
void main()
{
void printat();
void printnx(int n);
int maxt(int a,int b);
int a=3,b=4,max;
printat();
printf("打印ab行的#号\n");
max=maxt(a,b);
printnx(max);
}
void printat()
{
printf("@@@@@@@@@\n");
}
void printnx(int n)
{
for(int i=1;i<=n;i++)
{
printf(">####\n");
}
}
int maxt(int a,int b)
{
int z;
if(a>=b)
z=a;
else
z=b;
return (z);
}
2. 有如下的一段程序,程序调用max3t()函数将三个数中的最大值输出,请定义max3t并将主程序补充完整,使之正常运行。
#include <stdio.h>
void main()
{
int a=3,b=4,c=8,max;
max=max3t(a,b,c);
printf("三个数中的最大值是%d",max);
}
函数名 | max3t |
函数返回值 | 有一个返回值,int型 |
函数参数 | 有三个整型的参数, |
函数功能 | 返回三个数中的最大值 |
#include <stdio.h>
void main()
{
int max3t(int x,int y,int z);
int a=3,b=4,c=8,max;
max=max3t(a,b,c);
printf("三个数中的最大值是%d",max);
}
int max3t(int x,int y,int z)
{
int k;
if(x>=y&&x>=z)
k=x;
else if(y>=x&&y>=z)
k=y;
else
k=z;
return (k);
}
3. 有如下的一段程序,程序调用g( )函数进行累加求和,请定义g( )函数并将主程序补充完整,使之正常运行。
#include <stdio.h>
void main()
{
printf("请输入你想求从到多少的和\n");
scanf("%d",&n);
sum=g(n); //如输入,则g(5)输出+2+3+4+5的和
printf("从到%d的和为%d",n,sum);
}
函数名 | g |
函数返回值 | 有一个返回值,int型 |
函数参数 | +2+3+4+5+。。。g的和 |
#include <stdio.h>
void main()
{
int g(int x);
int n,sum;
printf("请输入你想求从到多少的和\n");
scanf("%d",&n);
sum=g(n); //如输入,则g(5)输出+2+3+4+5的和
printf("从到%d的和为%d",n,sum);
}
int g(int x)
{
int sum2=0;
for(int i=0;i<=x;i++)
{
sum2=sum2+i;
}
return (sum2);
}
4. 有如下的一段程序,程序调用isryear( )函数进行是否闰年判断,请定义isryear( )函数并将主程序补充完整,使之正常运行。
#include <stdio.h>
void main()
{
int year;
printf("请输入你要判断的年份:");
scanf("%d",&year);
if(isryear(year)==1)
printf("\n%d是闰年",year);
else
printf("\n%d不是闰年",year);
}
判断是否是闰年的函数
函数名 | isryear |
函数返回值 | 有一个,int型 |
函数参数 | 判断是否为闰年 |
#include <stdio.h>
void main()
{
int isyear (int自定义函数怎么用c语言 year);
int year;
printf("请输入你要判断的年份:");
scanf("%d",&year);
if(isyear(year)==1)
printf("\n%d是闰年",year);
else
printf("\n%d不是闰年",year);
}
int isyear(int year)
{
int a;
if(year%4==0&&year%100!=0||year%400==0)
a=1;
else
a=0;
return (a);
}
5. 写一个判素数的isss()函数,在主函数输入一个整数,输出是否素数的信息
函数名 | isss |
函数返回值 | 有一个,int型 |
函数参数 | 一个 |
函数功能 | 判断一个数是否为素数 |
#include<stdio.h>
void main()
{
int isss(int x);
int a;
scanf("%d",&a);
if(isss(a)==1)
printf("这个数为素数");
else
printf("这个数不是素数");
}
int isss(int x)
{
int k,n=0;
for(int i=2;i<=x;i++)
{
if(x%i==0)
{
n=n+1;
}
}
if (n==1)
k=1;
else
k=0;
return (k);
}
6. 写一个交换两个变量值的函数
函数名 | change |
函数返回值 | 无返回值 |
函数参数 | 两个float类型的数 |
函数功能 | 交换两个数的值 |
然后在如下主函数中调用change函数,观察输出的结果,为什么?
void main()
{void change(float a,float b);
int m=30,n=40;
change(m,n);
printf("交换数据后的值m=%d,n=%d",m,n);
}
不能交换
7. 有如下的一段程序,程序调用sort( )函数对数组进行排序,请定义sort( )函数并将主程序补充完整,使之正常运行。
#include <stdio.h>
void main()
{
int num[6]={3,4,6,2,10,1};
sort(num,6);
printf("排序后的数组为:");
for(int i=0;i<=5;i++)
printf("%d ",num[i]);
}
编写一个函数,实现数组的排序
函数名 | sort |
函数返回值 | 无返回值 |
函数参数 | 数组 |
函数功能 | 对数组进行从小到大的排序 |
#include <stdio.h>
void main()
{void sort(int num[],int n);
int num[6]={3,4,6,2,10,1};
sort(num,6);
printf("排序后的数组为:");
for(int i=0;i<=5;i++)
printf("%d ",num[i]);
}
void sort(int num[],int n)
{
int i,j,k,t;
for(i=0;i<=n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(num[j]<num[k])
k=j;
t=num[k];num[k]=num[i];num[i]=t;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论