| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 328 人关注过本帖
标题:runtimeerror。。。。求指导。。。
只看楼主 加入收藏
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:4 
runtimeerror。。。。求指导。。。
程序代码:


#include<stdio.h>
#include<string.h>
#include<malloc.h>
char* cal(char *p, char *q);
int main()
{
    char p[] = "";
    int n = 0, i = 0;
    while(scanf("%s%d", p, &n) != EOF)
    {
//初始检查,小数,位置记录
        char * result = p;
        for(i = 0; i < n - 1; i++)
        {
            result = cal(result, p);
        }
        printf("%s", result);
    }
}
///两个大数的乘法
char* cal(char *p, char *q)
{
//

    int pLength = strlen(p);
    int qLength = strlen(q);
    int m = pLength - 1, n = qLength - 1;//用于记录两个数的小数点所在位置
    int i = 0, j = 0, k = 0;
    int isDot = 0;
    char* result;
    int * s = (int*)malloc(sizeof(int)*(pLength + qLength));
    for(i = 0; i < pLength + qLength; i++) s[i] = 0;

    for(j = 0; j < pLength - 1; j++)
    {
        if(p[j] == '.')
        {
            isDot = 1;
            m = j;
        }
        if(isDot)
        {
            p[j] = p[j+1];
        }
    }
    isDot = 0;
    for(j = 0; j < qLength - 1; j++)
    {
        if(q[j] == '.')
        {
            isDot = 1;
            n = j;
        }
        if(isDot)
        {
            q[j] = q[j+1];
        }
    }
    for(i = 0; i < pLength; i++)
    {
        for(j = 0; j < qLength; j++)
        {
            s[i + j + 1] += (p[i] - '0') * (q[j] - '0');
        }
    }
    m = pLength - m - 1;//得到小数点后位置
    n = qLength - n - 1;
    for(k = pLength + qLength - 1; k > 0; k--)
    {
        if(s[k] >= 10)
        {
            s[k - 1] += s[k] / 10;
            s[k] = s[k] % 10;
        }
    }
    if(m + n > 0)
    {
        while(k < pLength + qLength - m - n)
        {
            s[k] = s[k + 1];
            k++;
        }
        s[k] = -2;
    }
    result = (char*)malloc(sizeof(char)*(pLength + qLength));
    i = 0;
    while(s[i] == 0) i++;
    for(k = 0; i < pLength + qLength; k++, i++)
    {
        result[k] = s[i] + '0';
    }
    result[k] = '\0';
    return result;
}


老是runtimeerror

[ 本帖最后由 itma 于 2013-10-20 00:30 编辑 ]
搜索更多相关主题的帖子: color 
2013-10-18 16:21
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
怎么用printf_s?
2013-10-18 16:25
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
收藏
得分:0 
回复 2楼 tlliqi
vs老是提示不安全什么的。。。
上边代码已经改成printf了
2013-10-18 16:29
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
收藏
得分:0 
2013-10-19 13:52
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:20 
charp[] = "";    这句有问题

总有那身价贱的人给作业贴回复完整的代码
2013-10-19 14:34
快速回复:runtimeerror。。。。求指导。。。
数据加载中...
 
   



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

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