2 ruiruiddd ruiruiddd 于 2016.04.05 11:35 提问

帮忙看下代码,运行不了了,哪里有问题麻烦指出来下谢谢~!麻烦修改下 谢谢! 10C
c++

#include
#include
using namespace std;
int min(int n, int m);
int max(int n, int m);
const int N = 50;
void Read_Store(int Number[N], int &length);
void Add_Output();
int main()
{

    cout<<" This is a calculate number program"<<endl;

}

int min(int n,int m)
{
return (n<m) ? n : m;
}

int max(int n,int m)
{
return (n>m) ? n : m;
}

void Read_Store(int Number[N],int &length)
{
string num ;
int i;
cout<<"please input a number:";
cin>>num;
length = num.length();
for (i = 0; i < length; i++)
{
Number[i] = num[length - 1 - i] - '0';
}
}
void Add_Output()
{
int i,carry;
int strlen_num1,strlen_num2;
int Num1[N],Num2[N],Result[N];
int minnum,maxnum;

Read_Store(Num1,strlen_num1);
Read_Store(Num2,strlen_num2);


minnum = min(strlen_num1,strlen_num2);
maxnum = max(strlen_num1,strlen_num2);

carry = 0;
for(i=0;i<minnum;i++)
{
    Result[i] = (Num1[i] + Num2[i] + carry) % 10;
    carry = (Num1[i] + Num2[i] + carry)/10;
}


if(strlen_num1>minnum)
{
    for(i=minnum;i<strlen_num1;i++)
    {
        Result[i] = (Num1[i]+ carry) % 10;
        carry = (Num1[i]+ carry)/10;

    }
}

if(strlen_num2>minnum)
{
    for(i=minnum;i<strlen_num2;i++)
    {
        Result[i] = (Num2[i]+ carry) % 10;
        carry = (Num2[i]+ carry)/10;
    }
}

if(carry>0)
{
    Result[maxnum] = 1;
    maxnum++;
}
cout<<"Result:";
for(i=maxnum-1;i>=0;i--)
{
    cout<<Result[i];
}
cout<<endl;

system("pause");
return ;

}

int main 的函数 要求放在第一位,可是我就是运行不了。。为什么。。

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.05 11:47

什么叫运行不了?
图片说明
头文件看不到,包含以下两个就可以了

#include<iostream>
#include<string>
qq423399099
qq423399099 回复ruiruiddd: 大数相加,已经发现了
2 年多之前 回复
ruiruiddd
ruiruiddd 按理说我下面还有其他的运行程序的, 主要内容是让两个蛮大的数字可以相加
2 年多之前 回复
ruiruiddd
ruiruiddd   2016.04.05 11:57

这原码

#include
#include
using namespace std;

const int N=50;
int min(int n,int m)//返回两个数中的最小一个数
{
return (n<m) ? n : m;
}

int max(int n,int m)//返回两个数中的最大一个数
{
return (n>m) ? n : m;
}

void Read_Store(int Number[N],int &length)
{
string num ;
int i;
cout<<"please input a number:";
cin>>num;
length = num.length();
for(i=0;i<length;i++)
{
Number[i] = num[length-1-i] - '0';//字符转化为整数
}
}
void Add_Output()//两个长整数相加
{
int i,carry;
int strlen_num1,strlen_num2;//数字1的长度,数字2的长度
int Num1[N],Num2[N],Result[N];
int minnum,maxnum;//两个数中长度最大的一个

Read_Store(Num1,strlen_num1);
Read_Store(Num2,strlen_num2);


minnum = min(strlen_num1,strlen_num2);
maxnum = max(strlen_num1,strlen_num2);

carry = 0;//进位初始为0
for(i=0;i<minnum;i++)
{
    Result[i] = (Num1[i] + Num2[i] + carry) % 10;
    carry = (Num1[i] + Num2[i] + carry)/10;
}


if(strlen_num1>minnum)
{
    for(i=minnum;i<strlen_num1;i++)
    {
        Result[i] = (Num1[i]+ carry) % 10;
        carry = (Num1[i]+ carry)/10;

    }
}

if(strlen_num2>minnum)
{
    for(i=minnum;i<strlen_num2;i++)
    {
        Result[i] = (Num2[i]+ carry) % 10;
        carry = (Num2[i]+ carry)/10;
    }
}

if(carry>0)//最后一位有进位
{
    Result[maxnum] = 1;
    maxnum++;
}
cout<<"Result:";
for(i=maxnum-1;i>=0;i--)
{
    cout<<Result[i];
}
cout<<endl;

}

int main()
{
Add_Output();
return 0;
}

如何将int main() 里的程序 放在开头,并让程序运行

Xikedxk
Xikedxk 把main(){...}中的函数先声明,放在main的前面,即可。
2 年多之前 回复
Xikedxk
Xikedxk 建议多看看C语言基础,函数声明、定义与调用,多看代码例子,然后明白人家的函数位置安排。函数要先声明(定义放在前面也相当于声明,即告诉了编译器)再调用。
2 年多之前 回复
Xikedxk
Xikedxk 建议多看看C语言基础,函数声明、定义与调用,多看代码例子,然后明白人家的函数位置安排。函数要先声明(定义放在前面也相当于声明,即告诉了编译器)再调用。
2 年多之前 回复
lml0703
lml0703   2016.04.05 12:02

图片说明像是这样么?

ruiruiddd
ruiruiddd 是的,已经搞定了 十分感谢!
2 年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.05 12:02

直接放上来啊。。函数声明一下就可以了啊

#include<iostream>
#include<string>
using namespace std;
const int N=50;

int min(int n, int m);
int max(int n, int m);
void Read_Store(int Number[N], int &length);
void Add_Output();

int main()
{
    Add_Output();
    return 0;
}

int min(int n,int m)//返回两个数中的最小一个数
{
    return (n<m) ? n : m;
}

int max(int n,int m)//返回两个数中的最大一个数
{
    return (n>m) ? n : m;
}

void Read_Store(int Number[N],int &length)
{
    string num ;
    int i;
    cout<<"please input a number:";
    cin>>num;
    length = num.length();
    for(i=0;i<length;i++)
    {
        Number[i] = num[length-1-i] - '0';//字符转化为整数
    }
}
void Add_Output()//两个长整数相加
{
    int i,carry;
    int strlen_num1,strlen_num2;//数字1的长度,数字2的长度
    int Num1[N],Num2[N],Result[N];
    int minnum,maxnum;//两个数中长度最大的一个

    Read_Store(Num1,strlen_num1);
    Read_Store(Num2,strlen_num2);


    minnum = min(strlen_num1,strlen_num2);
    maxnum = max(strlen_num1,strlen_num2);

    carry = 0;//进位初始为0
    for(i=0;i<minnum;i++)
    {
        Result[i] = (Num1[i] + Num2[i] + carry) % 10;
        carry = (Num1[i] + Num2[i] + carry)/10;
    }


    if(strlen_num1>minnum)
    {
        for(i=minnum;i<strlen_num1;i++)
        {
            Result[i] = (Num1[i]+ carry) % 10;
            carry = (Num1[i]+ carry)/10;

        }
    }

    if(strlen_num2>minnum)
    {
        for(i=minnum;i<strlen_num2;i++)
        {
            Result[i] = (Num2[i]+ carry) % 10;
            carry = (Num2[i]+ carry)/10;
        }
    }

    if(carry>0)//最后一位有进位
    {
        Result[maxnum] = 1;
        maxnum++;
    }
    cout<<"Result:";
    for(i=maxnum-1;i>=0;i--)
    {
        cout<<Result[i];
    }
    cout<<endl;
}

结果:
图片说明

ruiruiddd
ruiruiddd 难怪,我漏了些东西,十分感谢!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
不要说谢谢
前言:任何理论上的东西都是完全相信的,只是实践。 在生活中,提倡讲礼貌,这是很有价值的。体现一个人对其他人的尊重。一声谢谢,在大的场合,体现一个人的修养。 但在现实生活中,可就不是那么简单的事了。 因为别人为你服务可不是为了要谢谢两个字。 1、之所以帮你,之所以给你提供方便是想认识你,结交你,总是,以后能够知道彼此的姓名,能够互给方便。人是怎么认识的?不就是互相帮助、礼尚往来认识的
简单的酒店或者企业工资系统
简单的工资系统,其中有个功能不能完成,麻烦谁帮忙修改下啊,谢谢。
Itself is Itself(scu1617)
Itself is Itself(scu1617) Contest2080 - 湖南多校对抗赛(2015.05.10)(国防科大学校赛决赛-Semilive)
Highcharts做的图表例子,页面JQuery,后台JAVA JSON
文件仅有两个文件,一个是HighCharts做的曲线图标htm,使用JQuery Ajax接收JSON字符串,后台使用java HttpServeltResponse json, out.write("....");此例运行需要官方的js demo包,部分java方法代码如下<<涵盖两条曲线,str中定义的原始数据,请结合实际项目从数据库中查询,并且组合,自己用了1个小时做的例子>> 请参阅 public void loadReport(HttpServletRequest req, HttpServletResponse res) throws IOException, URISyntaxException { String str = "{name: 'Tokyo',data: [[1283644800000,966],[1283731200000,2475],[1283817600000,3336],[1283904000000,1316]]}," + "{name: 'New York',data:[[1283644800000,433],[1283731200000,983],[1283817600000,1463],[1283904000000,1316]]}"; res.getWriter().write(str); }
英语口语练习四十之地道口语:感谢及回应感谢的英语表达
表达感谢有很多英语运用方式:1.Thank you.谢谢作为最普遍的表达感谢的语句,与此相同的意思表达为Thanks。2.Thank you very much.非常感谢在Thank you 后面加上程度词,表达了对对方的感激程度之深,此外还有:Thanks a lot 非常感谢;Thank you so much 非常感谢;Thanks a bundle 非常感谢”a bundle”常作为量词,为
完美LFS教程,教你建立你自己的个性化Linux
备注:曾经看过把手教你如何建立自己的Linux系统>,但是制作后还是有些问题,一开始以为是自己打错了,后来发现其实是教程里漏掉一部分内容。所以自己又写了个详尽版本的,我已经成功进去了,所以这个版本没有问题。至于中途退出怎么重进的问题,我这里没有写,你可以在Vmware保存镜像,也可以用计算机休眠来保存状态,或者查看《手把手教你如何建立自己的Linux系统》 准备工作  Vmware 7
android调用.net的webservice
代码有问题,麻烦高手看看。有代码及数据库。谢谢~~~
精通ASP.NET 4.0网络编程:基础、框架与项目实战_源码
精通ASP.NET 4.0网络编程:基础、框架与项目实战_源码
NEC V850 MCU芯片资料
子系统时钟不能从目标系统输入。一个装入QB-V850ESSX2的 32.768 kHz 共振器用作时钟。 时钟频率不能改变。
note_ziliao
项目页面