2 geraltcn GeraltCN 于 2016.03.31 08:55 提问

新手一个关于循环的问题

先输入一个数n 来表示需要循环几次
但是如果输入了2 在第二次输入字符串的时候 结果是错误的

代码写的烂 轻喷

#include<stdio.h>
#include <stdlib.h>
void qiuhe(char a[1000],char b[1000])
{
    char a1[1000];
    char b1[1000];
    int A[1000];                             
    int B[1000];
    int s1=0;
    int s2=0;

    for(int i1=0;a[i1]!='\0';i1++)      
    {
        a1[i1]=a[i1];
        A[i1]=atoi(&a1[i1]);
        s1+=1;
    }

    for(int i2=0;b[i2]!='\0';i2++)      
    {
        b1[i2]=b[i2];
        B[i2]=atoi(&b1[i2]);
        s2+=1;
    }

    int g[1000];
    int h[1000];
    int j[1000];
    int t=0;
    while(t<1000)
    {
        g[t]=0;
        h[t]=0;
        j[t]=0;
        t++;
    }

    for (int i3=0;i3<s1;i3++)
    {
        g[i3]=A[s1-i3-1];   
    }   

    for (int i4=0;i4<s2;i4++)
    {
        h[i4]=B[s2-i4-1];   
    }   

    int c=s1>s2?s1:s2;
    int final[1000];    
    for(int i=0;i<c;i++)
    {
        j[i]+=g[i]+h[i];
        if(j[i]>=10)
        {
            j[i]-=10;
            j[i+1]+=1;
        }
        final[i]=j[i];
        final[i+1]=j[i+1];
    }
    for(int r=c;r>-1;r--){

    if(r==c&&final[r]==0)
        continue;

    printf("%d",final[r]);
    }
}
int main()
{
    char x[1000],y[1000];
    int n;
    scanf("%d",&n);
    while(n){
    scanf("%s%s",x,y);
    qiuhe(x,y); 
    if(n!=1){printf("\n\n");}
    else {printf("\n");}
    n--;
    }
} 

3个回答

CSDNXIAON
CSDNXIAON   2016.03.31 09:02

一个JAVA新手问题,关于setName和getName
从一个新手遇到的问题看DataReader
请教一个问题(新手)
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq423399099
qq423399099   Ds   Rxr 2016.03.31 09:42

楼主是都输入数字的吗?还是说输入带字母的字符串的时候结果不对
图片说明

GeraltCN
GeraltCN 谢谢啦 我换个编译器试试
一年多之前 回复
GeraltCN
GeraltCN 啊哦 在你这里竟然是对的 我自己这里是错的 难道是编译器的问题?
一年多之前 回复
qq_25827845
qq_25827845   2016.03.31 09:43

哥们,代码应该加注释

GeraltCN
GeraltCN 好的 谢谢提醒
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!