| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3131 人关注过本帖
标题:(多样的加法)程序运行结果不正确,结果总是相似的一串数字,不知道怎么改 ...
只看楼主 加入收藏
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
结帖率:94.44%
收藏
已结贴  问题点数:15 回复次数:5 
(多样的加法)程序运行结果不正确,结果总是相似的一串数字,不知道怎么改,求大神帮忙。

程序代码:
#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
int main()
{
    int n,m,p,q,i,w,r;
    int j[100][100]={0};
    char a[99]={0},b[99]={0},*c[100][100]={0};
    p=0;q=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%s",a);
        scanf("%s",b);
        if(a[0]<=57&&a[0]>=48&&b[0]<=57&&b[0]>=48)
        {
            int num=atoi(a);
            r=atoi(b);
            r=num+r;
        j[q][99]=r;
        q++;
        }
        else
        {
        c[p][99]=strcat(a,b);
        p++;
        }
    }
    
    for(w=0;w<q;w++)
    printf("%d\n",j[w]);
    for(i=0;i<p;i++)
    printf("%s\n",c[i]);
    return 0;
}

运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
/*1多样的加法(20分)
题目内容:
加法常常有不同的含义,如果我们看见“4+6”,我们会理解为10,如果我们看见“help+me”,我们会理解为“helpme”。
现在我们从键盘上输入,一组序列,请你来区分,不同的情况,给出不同的“加法”之后的结果。

输入格式:
第一行,输入一个整数N,表示有N组输入,接下来的每一行,有两个序列(整数或字符串),中间用空格分开

输出格式:
每一组输入,对应的结果

输入样例:
4[回车]
123[空格]456[回车]
hello[空格]Xidada[回车]
hello[空格]123[回车]
123[空格]hello[回车]

输出样例:
579[回车]
helloXidada[回车]
hello123[回车]
123hello[回车]

时间限制:500ms内存限制:32000kb*/
2016-12-06 17:29
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:8 
没有必要用二维数组
另外你的代码有了限制条件,不知道能不能通过。
程序代码:
#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
int main()
{
    int n, m, p, q, i, w, r;
    int j[100] = { 0 };
    char a[99] = { 0 }, b[99] = { 0 }, *c[100] = { 0 };
    p = 0; q = 0;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%s", a);
        scanf("%s", b);
        if (a[0] <= 57 && a[0] >= 48 && b[0] <= 57 && b[0] >= 48)
        {
            int num = atoi(a);
            r = atoi(b);
            r = num + r;
            j[q] = r;
            q++;
        }
        else
        {
            c[p] = strcat(a, b);
            p++;
        }
    }

    for (w = 0; w<q; w++)
        printf("%d\n", j[w]);
    for (i = 0; i<p; i++)
        printf("%s\n", c[i]);
    return 0;
}
2016-12-06 17:37
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
回复 2楼 grmmylbs
整型数组用一维数组可以,但char型数组应该用二维数组吧,
否则,结果这样:
图片附件: 游客没有浏览图片的权限,请 登录注册

作为新人的我,水平有限,关于指针,还没接触,
程序代码:
#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
int main()
{
    int n, m, p, q, i, w, r;
    int j[100] = { 0 };
    char a[99] = { 0 }, b[99] = { 0 }, *c[100] = { 0 };//此处的 “*c[100] = { 0 }”,是我根据报错猜着改的 。。。。 
    p = 0; q = 0;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%s", a);
        scanf("%s", b);
        if (a[0] <= 57 && a[0] >= 48 && b[0] <= 57 && b[0] >= 48)
        {
            int num = atoi(a);
            r = atoi(b);
            r = num + r;
            j[q] = r;//改成一维数组之后,果然能够正常输出计算得到的值,但为什么用二位数组不可以,出现错误
            q++;
        }
        else
        {
            c[p] = strcat(a, b);
            p++;
        }
    }

    for (w = 0; w<q; w++)
        printf("%d\n", j[w]);
    for (i = 0; i<p; i++)
        printf("%s\n", c[i]);
    return 0;
}


[此贴子已经被作者于2016-12-6 18:24编辑过]

2016-12-06 18:04
groveer
Rank: 3Rank: 3
来 自:世界的一角
等 级:论坛游侠
威 望:1
帖 子:77
专家分:182
注 册:2013-11-18
收藏
得分:8 
回复 3楼 o天道酬勤o
注意你的输出是一维数组

付出不亚于任何人的努力~
2016-12-06 18:52
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
回复 4楼 groveer
若是使用二维数组的话,我应该怎样改
虽然没有必要使用二维数组

[此贴子已经被作者于2016-12-6 19:15编辑过]

2016-12-06 19:11
groveer
Rank: 3Rank: 3
来 自:世界的一角
等 级:论坛游侠
威 望:1
帖 子:77
专家分:182
注 册:2013-11-18
收藏
得分:0 
回复 5楼 o天道酬勤o
没有必要用二维数组,如果非要用,你上面是怎么用的,下面就得怎么输出

付出不亚于任何人的努力~
2016-12-10 12:09
快速回复:(多样的加法)程序运行结果不正确,结果总是相似的一串数字,不知道怎 ...
数据加载中...
 
   



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

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