功能:编写函数fun计算下列分段函数的值: ×^2+×+6x<0日x-3 f×=×^2-5x+60≤x<10日x*2及**3 x^2-×-1其它#include <stdio.h> float fun(float x) **********Program********** /********** End **********/ main() float x,f; printf("input x="); scanf("%f" &x); f=fun(x); printf(“x=5f,f(x)=%f1n"',x,f);
时间: 2023-07-23 21:39:52 浏览: 154
代码存在一些问题,应该为:
```
#include <stdio.h>
float fun(float x) {
if (x < 0) {
return x * x + x + 6;
} else if (x >= 0 && x < 10) {
return x * x - 5 * x + 6;
} else {
return x * x - x - 1;
}
}
int main() {
float x, f;
printf("input x=");
scanf("%f", &x);
f = fun(x);
printf("x=%f, f(x)=%f\n", x, f);
return 0;
}
```
该代码实现了计算下列分段函数的值:
- x^2+x+6,当x<0
- x^2-5x+6,当0<=x<10
- x^2-x-1,其他情况
并输出结果。
相关问题
Prog1.c 23 【程序改错】 5 题目:主函数main()调用fun()函数,其中fun函数的功能是:计算二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:135 7 9299946999813570则函数值1+3+5+7+9+4+8+0+7+5+3+1+6+2-61. 12 下面给定的程序存在错误,请改正。 I 注意:不得增行或删行,也不得更改程序的结构。 2021#include <stdio.h>****FOUND*********int fun (int a [4] []){24int i,j,sum=0;for (i=0;i <4ji++)for (j-0;j <5;j++)**FOUND***********/if (i--08&j==088i==388j==4)FOUND***********/sum=a [i] [j];return sum;29303132333435日{36int aa [4] [5]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};37int i,j,y;38printf ("The original data is: \n") ;39for (i=0;i <4;i++)40{白414243444546474for (j=0;j <5jj++)printf ("X6d",aa [i] [j]);printf ("\n") ;
以下是修改后的代码:
```
#include <stdio.h>
int fun(int a[4][5]) {
int i, j, sum = 0;
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
if (i == 0 || i == 3 || j == 0 || j == 4) {
sum += a[i][j];
}
}
}
return sum - 61;
}
int main() {
int aa[4][5] = {{1, 3, 5, 7, 9}, {2, 9, 9, 9, 4}, {6, 9, 9, 9, 8}, {1, 3, 5, 7, 0}};
int i, j, y;
printf("The original data is: \n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
printf("%d ", aa[i][j]);
}
printf("\n");
}
y = fun(aa);
printf("The result is: %d\n", y);
return 0;
}
```
修改说明:
1. 在fun函数中,修改了if语句的条件,使其只计算二维数组周边的元素之和,同时将最后的sum - 61作为函数返回值。
2. 在主函数中,修改了输出二维数组的方式,使其按照题目要求输出。同时调用fun函数并输出结果。
fun3.c:输入某年某月某日,判断这一天是这一-年的第几天?
以下是Fun3.c的代码实现:
```c
#include <stdio.h>
#include "define.h"
int isLeapYear(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
int getDays(int year, int month, int day)
{
int days = 0;
int i;
int monthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year)) {
monthDays[1] = 29;
}
for (i = 0; i < month - 1; i++) {
days += monthDays[i];
}
days += day;
return days;
}
void fun3()
{
int year, month, day;
printf("请输入年月日,格式为yyyy-mm-dd:");
scanf("%d-%d-%d", &year, &month, &day);
int days = getDays(year, month, day);
printf("%d-%d-%d是%d年的第%d天。\n", year, month, day, year, days);
}
```
该函数实现了输入某年某月某日,判断这一天是这一年的第几天的功能。首先定义了一个判断闰年的函数isLeapYear,该函数接收一个年份参数,如果该年份是闰年,则返回1,否则返回0。然后定义了一个计算天数的函数getDays,该函数接收三个参数,分别是年、月、日,返回这一天是这一年的第几天。在函数中,首先定义了一个月份天数的数组monthDays,然后根据年份判断2月份的天数,接着使用一个for循环计算之前月份的天数,最后加上当月的天数,即为这一天是这一年的第几天。最后在主函数中,使用scanf函数输入年月日,调用getDays函数计算天数,并输出结果。