weixin_42703390 2019-02-27 22:07 采纳率: 100%
浏览 496
已采纳

c++主函数返回失败的问题!求指教

#include <stdio.h>
#include <string.h>
#define max 220

struct bigint{
    int digit[max/4],size;
    void init(){
        size = 0;
        for(int i=0;i<max;i++){
            digit[i] = 0;
        }
    }
    void set(char *a){
        init();
        int sl = strlen(a),j=0,k=1,t=0;
        for(int i=sl-1;i>=0;i--){
            t+= k*(a[i]-'0');
            k*=10;
            j++;
            if(j==4||i==0){
                k = 1;
                digit[size++] = t;
                t = j = 0;
            }
        }
    }
    void output(){
        for(int i=size-1;i>=0;i--){
            if(i!=size-1)   printf("%04d",digit[i]);
            else    printf("%d",digit[i]);  
        }
        printf("\n");
    }
    bigint operator + (const bigint &a) const {
        int l=size>a.size?size:a.size,carry=0;
        bigint ret;
        ret.init();
        for(int i=0;i<l;i++){
            int t = digit[i]+a.digit[i]+carry;
            carry = t/10000;
            ret.digit[ret.size++]=t%10000;
        }
        if(carry!=0)    ret.digit[ret.size++] = carry;
        return ret;
    }
}a,b,c;

int main(){
    char str1[max],ch;
    int l=0;
    bool flag=false;
    do{
        ch=getchar();
    }while(ch=='0');
    do{
        str1[l++]=ch;
        ch=getchar();
    }while(ch!='\n');
    str1[l++] = 0;
    a.set(str1);
    l=0;
    do{
        ch=getchar();
    }while(ch=='0');
    do{
        str1[l++]=ch;
        ch=getchar();
    }while(ch!='\n');
    str1[l++] = 0;
    b.set(str1);
//  a.set(str1);
//  b.set(str1);
//  a.output();
//  b.output();
    c = a+b;
            c.output();

printf("OK\n");//执行完这句不return 0
return 0;
}

代码如上图:
功能是把两个长整数相加。
然而神奇的事情发生了,如图!printf("OK\n")执行了,return值却不对!
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-02-27 23:51
    关注

    返回值是进程的返回值,如果你有调试器在运行,那么这个结果和main的return不同很正常

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵