gpt4 book ai didi

c - 为什么我的 C 程序的输出不正确?

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:10 24 4
gpt4 key购买 nike

这是我从输入中读取数据的 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(); 时,它工作得很好!

最佳答案

您未能为 scanf("%s",...) 写入“字符串”末尾的空终止符字符留出足够的空间。增加 MAX #define 的值。您也可以输入更大的值,例如 32。

关于c - 为什么我的 C 程序的输出不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28286991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com