怎么用下面语句计算1+2+3+4+......+100的函数?
5个回答
展开全部
int zeeg(int n=0)
{
for (int i=1;i<=100;i++) //如果不行 帮这里的“int i=1”改成“int i”
{
n=n+i;
} //这里能算出1+2.…+100
return (1+n)*n/2; //这里就不知道你什么意思了 不过感觉你不是想反回1至100累加的和
}
才疏学浅不知道能不能解决你的问题 试试看吧 应该有个八九不离十了 for是循环(这里面写的是条件) 循环100次
{
for (int i=1;i<=100;i++) //如果不行 帮这里的“int i=1”改成“int i”
{
n=n+i;
} //这里能算出1+2.…+100
return (1+n)*n/2; //这里就不知道你什么意思了 不过感觉你不是想反回1至100累加的和
}
才疏学浅不知道能不能解决你的问题 试试看吧 应该有个八九不离十了 for是循环(这里面写的是条件) 循环100次
追问
不是。。刚刚一个老师出这道题,后来我用FOR循环做出来,求出的结果是5050,然后他说我结果错了。。后来他就给了
int f(int n)
{
return (1+n)*n/2
}
这个代码段,说是运算一次就等于100次的。。
不过看不懂。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 2 3 … n=(n 1)*n/2;所以
#include<stdio.h>
int f(int n)…/*这里写上那个函数代码*/
int main(){
printf(”1 2 3 … 100=”,fun(100));
return 0;
}
那个函数代码,就是计算1~n的连加和的,你只要调用一下,就可以了!然后把结果输出,告诉大家这个连加和是多少,问题解决!不会没学过这个公式吧!
#include<stdio.h>
int f(int n)…/*这里写上那个函数代码*/
int main(){
printf(”1 2 3 … 100=”,fun(100));
return 0;
}
那个函数代码,就是计算1~n的连加和的,你只要调用一下,就可以了!然后把结果输出,告诉大家这个连加和是多少,问题解决!不会没学过这个公式吧!
追问
不明白的是.
int f(int n)这个东西怎理解?
那个公式我知道。数学小学就学。
还有返回那个公式有什么意义??
追答
这是个函数定义,和数学上的f(n)=(1+ n)*n/2;差不多,函数调用和代入差不多!
f(100)就相当于当n=100时求(1+ 100)*100/2的值!
上次回答时f(100)错写成,fun(100)了!抱歉!
int f(int n)这是函数头部;
后加分号叫函数原型或函数声明!
加后一对大括号就叫函数体!
求出来的结果就是return 后面那个表达式的值!
函数的头部前面的类型是函数的类型,通常叫返回值类型,就是结果的类型!
小括号内的部分叫参数表,里面的变量名叫形参,数据类型叫参数类型。
就是说参数n是个整型数,和数学上的整数有些不同,编程语言里的整数是有限的,就是说范围是一定的,而数学上整数是无限多个,这不是计算机可以表示的!
函数定义是用来调用的,定义了函数,接着就要用它来解决问题!
这就会用上函数调用,在这里写上f(100)就是对函数f的调用100就是那个n了!
这个100就是实参,n是形参,这形实结合就会得出结果,
就是函数值,也叫函数返回值,返回值了!有了返回值就可以输出了!可以用它赋值给一个变量,象m=f(n),也可以用在别的地方!比如作为输出函数printf的参数!
PS:这种方法得到的结果也是5050!和你用循环得到的结果一样!
只是这样写比较简单,一个乘法一个除法,解决问题,另外老师在教你用函数解决问题,所以不必纠结!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int f(int n) {
if (n<1) return 0;
return n*(n+1)/2;
}
int main(int argc, char* argv[]) {
long result;
if (argc < 2) {
printf("Usage:calculate n\n");
printf(" n≥1, n is an integer.\n");
exit(0);
}
result = f(n);
printf("The result n!=%ld\n", result);
return 0;
}
int f(int n) {
if (n<1) return 0;
return n*(n+1)/2;
}
int main(int argc, char* argv[]) {
long result;
if (argc < 2) {
printf("Usage:calculate n\n");
printf(" n≥1, n is an integer.\n");
exit(0);
}
result = f(n);
printf("The result n!=%ld\n", result);
return 0;
}
更多追问追答
追问
大哥,你写的程序好多我都看不懂,可以解释下么??
追答
哪不懂?都是基础的东西?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int f(int n)
{
return (1+n)*n/2;
}
int main()
{
int m = f(100);
printf("%d", m);
}
{
return (1+n)*n/2;
}
int main()
{
int m = f(100);
printf("%d", m);
}
追问
算出来的结果是5050么??如果是的话为什么我刚自己用FOR循环做出来提供给一个老师为什么说结果错的??
追答
算出来的当然是5050了,不需要for循环的,就这么多代码就够了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int f(int n)
{
return (1+n)*n/2;
}
main()
{
int n;
n=f(100);
printf("%d\n",n);
}
int f(int n)
{
return (1+n)*n/2;
}
main()
{
int n;
n=f(100);
printf("%d\n",n);
}
追问
请问下 算出来的结果是5050么??
追答
从一加到一百的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询