作业1:定义有参无返回值函数实现,主调函数传递三角形三条边,被调函数中对其进行判断,判断能否构成三角形,如果能构成三角形,判断该三角形是等边三角形、等腰三角形还是一半三角形。如果不能构成三角形,则输出不能构成三角形。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//函数:判断三角形
void s1(int num1,int num2,int num3)
{
if(num1+num2>num3&&num2+num3>num1&&num1+num3>num2)
{
printf("所输入的三条边能够成三角形\n");
if(num1==num2||num1==num3)
{
if(num1==num3&&num2==num3)
{
printf("所输入的三条边能够成等边三角形\n");
}else
{
printf("所输入的三条边构成等腰三角形\n");
}
}else
{
printf("所输入的三条边构成普通三角形\n");
}
}else
{
printf("所输入的三条边不可以构成三角形\n");
}
}
//主函数
int main(int argc, const char *argv[])
{
int a,b,c;
printf("请输入三角形的三条边:");
scanf("%d%d%d",&a,&b,&c);
s1(a,b,c);
return 0;
}
作业2:使用有参无返回值函数实现如下应用题
电暖气是一种将电能转化为热能的产品。目前,国内的电采暖方式主要分为发热电缆地板辐射采暖、电热膜采暖和电暖气等。
编程实现输入用电量,计算电费功能.
注:电费采用的是阶段电费:
如果用电量在1-100度之间电费单价是0.35元
如果用电度数为101---200则电费单价是0.46元
超过200度则电费单价是0.68元
例如:如果用电量为120度,则前100 度按第一阶梯收费,剩余20度以第二阶梯价收费。
电费=100*0.35+(120-100)*0.46;
要求主调函数中输入所用电量,被调函数中输出所要缴纳的电费
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//定义函数,计算电费
void s(int num)
{
int money = 0; //初始化缴纳的电费
if(num>100)
{
if(num>200)
{
num=100*0.35+100*0.46+(num-200)*0.68;
printf("所要缴纳的电费为:%d\n",num);
}else
{
num=100*0.35+(num-100)*0.46;
printf("所要缴纳的电费为:%d\n",num);
}
}else
{
num = num*0.35;
printf("所要缴纳的电费为:%d\n",num);
}
}
//主函数
int main(int argc, const char *argv[])
{
int num = 0;
printf("请输入所用点量:");
scanf("%d",&num);
s(num);
return 0;
}
作业3:定义有参无返回值函数,在主函数中完成输入字符串,将数组名作为函数参数传递,在被调函数中,将字符串中的数字字符存入新数组,分别统计奇偶个数、和、平均值输出。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//定义函数
void p(char s[])
{
int m,n,sum;
m=0; //偶数个数
n=0; //奇数个数
sum=0;
float aver=0;
int len=strlen(s); //数组的实际字符长度
for(int i = 0;i<len;i++)
{
if(s[i]>='0'&&s[i]<='9')
{
if(s[i]%2==0)
{
m++; //偶数时+1
}else
{
n++; //奇数时+1
}
sum+=s[i]-48; //累加求和
}
}
aver=(float)sum/(m+n); //求均值
printf("偶数个数为%d\t奇数个数为%d\n",m,n);
printf("和为%d\t平均值为%.2f\n",sum,aver);
}
//主函数
int main(int argc, const char *argv[])
{
char arr[50];
printf("请输入字符串:");
gets(arr);
p(arr);
return 0;
}
作业4:定义函数实现:
主调函数中定义一个数组,存储6名学生的成绩。
调用自定义的有参无返回值函数完成6名学生的成绩录入。
调用自定义的有参无返回值函数完成对成绩的输出。
调用有参无返回值函数,完成对成绩的升序排序。
调用自定义的有参有返回值函数,求出总成绩后,在主调函数输出总成绩
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
void s1(int a1[6])
{
for(int i = 0;i<6;i++)
{
printf("请输入第%d个学生的成绩:",i+1);
scanf("%d",&a1[i]);
}
}
void s2(int a1[6])
{
for(int i = 0;i<6;i++)
{
printf("第%d个学生的成绩为:",i+1);
printf("%d\n",a1[i]);
}
}
void s3(int a1[6])
{
int temp = 0;
for(int i = 1;i<6;i++)
{
for(int j=0;j<6-i;j++)
{
if(a1[j]>a1[j+1])
{
temp=a1[j];
a1[j]=a1[j+1];
a1[j+1]=temp;
}
}
}
printf("排序后的成绩为:");
for(int i = 0;i<6;i++)
{
printf("%d\t",a1[i]);
}
printf("\n");
}
int s4(int a1[6])
{
int sum = 0;
for(int i = 0;i<6;i++)
{
sum+=a1[i];
}
return sum;
}
int main(int argc, const char *argv[])
{
int arr[6];
s1(arr);
s2(arr);
s3(arr);
int all = s4(arr);
printf("总成绩为:%d\n",all);
return 0;
}