标题:错在哪里了????
只看楼主
maiiho
Rank: 1
等 级:新手上路
帖 子:94
专家分:7
注 册:2008-7-17
结帖率:50%
 问题点数:0 回复次数:7 
错在哪里了????
写这个程序的本意是,从键盘输入一个数,输入几,就累加到几
比如,输入100,结果为5050,过程是1+2++4+5+6~~~+100

#include <iostream.h>
int fun(int *p)
{
    int i,sum=0;
    for(i=0;i<=100;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
   int *s;
   int sum=0;
   cout<<"Please enter number:";
   cin>>*s;
   int fun(*s);
   cout<<"\nFun="<<sum;
   return 0;
}
搜索更多相关主题的帖子: include 5050 键盘 
2008-09-17 16:38
maiiho
Rank: 1
等 级:新手上路
帖 子:94
专家分:7
注 册:2008-7-17
得分:0 
那里错误了?编程通过,可是运行的时候,就出错了
2008-09-17 16:40
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
你的程序挺有才的,我迷惑了好一会啊...
感觉你得多多练习了...
稍作改动:
#include <iostream.h>
int fun(int p)
{
    int i,sum=0;
    for(i=0;i<=p;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
   int s;//不知道你原来那是怎么想的...
   int sum=0;
   cout<<"Please enter number:";
   cin>>s;//同上...
   //int fun(s);   这都是哪跟哪啊!!
   cout<<"\nFun="<<fun(s);
   return 0;
}

2008-09-17 18:31
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
得分:0 
乖乖
乖乖...你的程序很黄很暴力!
实在是无语了我。
我把它改了一下, 你看看吧。
#include <iostream.h>
int fun(int p)
{
    int i,sum=0;
    for(i=1;i<=p;i++)
    {
        sum+=i;
    }
    return sum;
}

int main()
{
   int s;
  
   cout<<"Please enter number:";
   cin>>s;
   cout<<"\nFun="<<fun(s);
   return 0;
}

不好动不动把指针拿出来耍,,会出事的,,小妹妹

学习切忌浮躁.
2008-09-17 18:44
hanog
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-9
得分:0 
我也有问题啊
以下这个是OK的。
#include <iostream>
using namespace std;
int fun(int p)
{
    int i,sum=0;
    for(i=0;i<=p;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
   int a,s=0;
   int sum=0;
   cout << "Please enter number:";
   cin >> s;
   cout << "Fun=" << fun(s) << endl;
}


但这个就有问题了,编译通过,但是运行时出现故障。是怎么回事啊?
#include <iostream>
using namespace std;
int fun(int p)
{
    int i,sum=0;
    for(i=0;i<=p;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
   int a,*s=0;
   int sum=0;
   cout << "Please enter number:";
   cin >> *s;
   cout << "Fun=" << fun(*s) << endl;
}


这个只是把指针移到子函数,但是同样出现错误,编译出错:error C2664: 'fun' : cannot convert parameter 1 from 'int' to 'int *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

#include <iostream>
using namespace std;
int fun(int *p)
{
    int i,sum=0;
    for(i=0;i<=*p;i++)
    {
        sum+=i;
    }
    return sum;
}
int main()
{
   int a,s=0;
   int sum=0;
   cout << "Please enter number:";
   cin >> s;
   cout << "Fun=" << fun(s) << endl;
}



等待高手明示,谢谢!
2008-09-17 18:52
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
得分:0 
回答
楼上的把int类型赋给了指针类型.嘿嘿...函数要的是int * 类型,你怎么可以把int类型传给它呢?
改成这样cout << "Fun=" << fun(&s) << endl;就可以了.

学习切忌浮躁.
2008-09-17 19:08
gongqivictor
Rank: 1
来 自:武汉科大
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-9-16
得分:0 
呵呵,小妹妹太喜欢指针了
2008-09-17 20:50
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
呵呵,加油啊。。。

学习需要安静。。海盗要重新来过。。
2008-09-17 21:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-233646-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091266 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved