作业1:定义有参无返回值函数实现,主调函数传递三角形三条边,被调函数中对其进行判断,判断能否构成三角形,如果能构成三角形,判断该三角形是等边三角形、等腰三角形还是一半三角形。如果不能构成三角形,则输出不能构成三角形。
#include <stdio.h>
#include <math.h>
void IsTriangle(double a, double b, double c);
int main(int argc, char const *argv[])
{
double a,b,c;
printf("请输入三角形三条边的边长:");
scanf("%lf%lf%lf",&a,&b,&c);
IsTriangle(a,b,c);
return 0;
}
void IsTriangle(double a, double b, double c)
{
//三角形是否成立判断条件
if(a>0&&b>0&&c>0&&(a+b>c)&&(b+c>a)&&(a+c>b))
{
//等边三角形判断条件
if(a==b&&b==c)
{
printf("该三角形是等边三角形!\n");
}
//等腰三角形判断条件
else if (a==b||b==c||a==c)
{
printf("该三角形是等腰三角形!\n");
}
//直角三角形判断条件
else if((pow(a,2)+pow(b,2)==pow(c,2))||(pow(b,2)+pow(c,2)==pow(a,2))||(pow(a,2)+pow(c,2)==pow(b,2)))
{
printf("该三角形是直角三角形!\n");
}
else
{
printf("该三角形是一般三角形!\n");
}
}
else
{
printf("不能构成三角形!!!\n");
}
}
运行结果如下图所示:
作业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>
void Caculate_Electric(double a);
int main(int argc, char const *argv[])
{
double electri_fee;
printf("请输入您的用电度数:");
scanf("%lf",&electri_fee);
Caculate_Electric(electri_fee);
return 0;
}
void Caculate_Electric(double a)
{
double money;
if(a >= 1 && a <= 100)
{
money = a*0.35;
}
else if (a > 100 && a <= 200)
{
money = 100*0.35+(a-100)*0.46;
}
else
{
money = 100*0.35+100*0.46+(a-200)*0.68;
}
printf("您的用电费用为:%.1lf\n",money);
}
运行结果如下图所示:
作业3:定义有参无返回值函数,在主函数中完成输入字符串,将数组名作为函数参数传递,在被调函数中,将字符串中的数字字符存入新数组,分别统计奇偶个数、和、平均值输出。
#include <stdio.h>
void character(char A[],int n);
int main(int argc, char const *argv[])
{
char str[80];
gets(str);
character(str,strlen(str));
return 0;
}
void character(char A[],int n)
{
char B[n];
int j = 0; //数字个数
int odd = 0,even = 0; //奇数 偶数个数
int sum = 0;
printf("该字符串中数字有:\n");
for(int i = 0; i < n; i++)
{
if(A[i]>='0'&&A[i]<='9')
{
B[j] = A[i];
printf("%c\t",B[j]);
sum += B[j]-'0';
if((B[j]-'0')%2==0)
even++;
else
odd++;
j++;
}
}
printf("\n其中奇数有%d个,偶数有%d个\n",odd,even);
printf("\n和:%d,平均值:%lf\n",sum,(double)sum/j);
}
运行结果如下图所示:
作业4:定义函数实现:
主调函数中定义一个数组,存储6名学生的成绩。
调用自定义的有参无返回值函数完成6名学生的成绩录入。
调用自定义的有参无返回值函数完成对成绩的输出。
调用有参无返回值函数,完成对成绩的升序排序。
调用自定义的有参有返回值函数,求出总成绩后,在主调函数输出总成绩
#include <stdio.h>
void Data_Entry(double A[],int n); //数据录入
void Data_Output(double A[],int n); //数据打印
void BubbleSort(double A[],int n); //冒泡排序
double Sum_Grade(double A[],int n); //计算总成绩
int main(int argc, char const *argv[])
{
double grade[6];
Data_Entry(grade,6);
printf("\n<-------------------分隔符------------------->\n");
printf("\n录入的学生成绩如下:\n");
Data_Output(grade,6);
printf("\n<-------------------分隔符------------------->\n");
BubbleSort(grade,6);
printf("\n<-------------------分隔符------------------->\n");
printf("\n总成绩为:%.1lf\n",Sum_Grade(grade,6));
return 0;
}
//数据录入
void Data_Entry(double A[],int n)
{
for(int i = 0; i < n;)
{
printf("请输入第%d名同学的成绩(百分制):",i+1);
scanf("%lf",&A[i]);
if(A[i]>=0 && A[i]<=100){
i++;
}else{
printf("输入有误,请重新输入!!!\n");
}
}
}
//数据打印
void Data_Output(double A[],int n)
{
for (int i = 0; i < n; i++)
{
printf("%.1lf\t",A[i]);
}
printf("\n");
}
//冒泡排序
void BubbleSort(double A[],int n)
{
double temp;
for (int i = 1; i <= n-1; i++) //外部趟数
{
int flag = 0; //表示本趟冒泡是否发生变换的标志
for (int j = 0; j < n-i; j++)
{
if(A[j] > A[j+1]) //互为逆序
{
//交换
temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
flag = 1; //表示已发生变换
}
}
if(flag == 0)
break;
}
printf("\n排序后的成绩为:\n");
Data_Output(A,6);
}
//计算总成绩
double Sum_Grade(double A[],int n)
{
double sum = 0;
for (int i = 0; i < n; i++)
{
sum += A[i];
}
return sum;
}
运行结果如下图所示: