前言:(内容仅供分享和参考):
阿巴阿巴~多练多写()
========================================================================
题目:
编写程序,定义和调用函数int sum(int (*fp)(int),int start,int end)和int f(int x),f()函数的功能是求x的平方;从键盘输入两个整数,存放在变量num1 和num2中,要求num1≤num2;调用函数sum(f, num1,num2),求出f(num1)+…+f(num2)的值。
例如,假设num1 为1,num2为5,则f(1)为1²、f(2)为2²、f(3)为3²、f(4)为4²、f(5)为5²、f(1)+...+f(5)的值为55(1²+2²+3²+4²+5²)。
代码:(用到的软件:VisualStudio)
(用Dev-C++的把scanf_s换成scanf就行了)
因为sum这里有定义了三个,所以后面传值的时候也要相对应的传三个值回去,而且形式要一致。
int sum(int (*fp)(int), int start, int end)
sum(f,num1, num2);
全部代码:
#include<stdio.h>
int f(int x) {
int res;
res = x * x;
return res;
}
int sum(int (*fp)(int), int start, int end) {
int sum = 0;
if (end <= start) {
printf("请重新输入");
}
else {
for (start; start <= end; start++) {
sum += f(start);
}
}
printf("%d", sum);
return 0;
}
int main() {
int num1, num2;
scanf_s("%d%d", &num1, &num2);
sum(f,num1, num2);
}
========================================================================
结果图: