簡體   English   中英

為什么我的C程序的輸出不正確?

[英]Why is the output of my C program incorrect?

這是我在C中的代碼,它從輸入中讀取數據:

#include<string.h>
#define MAX 3
char a[MAX];
char b[MAX];
void ReadFirstNumber();
void ReadSecondNumber();
int lb,la=0;
void main()
{
    ReadFirstNumber();
    ReadSecondNumber();
    printf("\n First Number > %d %d %d \n",a[0],a[1],a[2]);
    printf(" Second Number >  %d %d %d \n",b[0],b[1],b[2]);
}
void ReadFirstNumber()
{
    int i=0;
    printf("Enter the first number:");
    scanf("%s", a);
    la=strlen(a)-1;
    for(i=0;i<=la;i++)
    {
        a[i] = a[i] -48;
    }
}
void ReadSecondNumber()
{
    int j=0;
    printf("Enter the Second number:");
    scanf("%s", b);
    lb=strlen(b)-1;
    for(j=0;j<=lb;j++)
    {
        b[j] = b[j] -48;
    }
}

輸入第一個數字示例: 123
輸入第二個數字示例: 456或任何3位數字

//output
First Number    **0**23
Second Number   456 

第一個數字的輸出是023

第一個角色是 但第二個數字的輸出是好的。

當我注釋掉第二個函數//ReadSecondNumber(); 它工作得很好!

你沒有為null終結符char留出足夠的空間,即scanf(“%s”,...)在'strings'的末尾寫入。 增加MAX #define的值。 你也可以放入更大的東西,例如32。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM