问题描述
- 我的C语言代码是这样的!!!编译器是VS2012express for desktop!运行就出错!!
-
#include
#include
#define LEN 1000int Input(char n[]);
void Print(char n[]);
void Add(char a[], char b[], char c[]);
int main()
{
char a[LEN], b[LEN], c[LEN];
int T,i;
scanf_s("%d", &T);
for(i=1; i<=T; i++) {
Input(a);
Input(b);
Add(a, b, c);
printf("Case %d:n",i);
printf("%s + %s = ",a,b);
Print(c);
}
}
int Input(char n[])
{
char s[LEN];
int i, l;
for(i=0; i<LEN; i++) {
n[i]=0;
}
if(scanf_s("%s", s)<1) {
return -1;
}
l = strlen(s);
for(i=0; i<l; i++) {
n[i] = s[l-i-1] - '0';
}
return 0;}
void Add(char a[], char b[], char c[])
{
int i;
for (i=0; i
c[i] = a[i]+b[i];
}
for(i=0; i
if(c[i]>=10) {
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
}
}
void Print(char n[])
{
int i;
for(i=LEN-1; i>0; i--) {
if(n[i]!=0) {
break;
}
}
for(; i>=0; i--) {
printf("%d", n[i]);
}
printf("n");
}
运行:0x5C2806FD (msvcr110d.dll) (code.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x00460000 时发生访问冲突。
解决方案
数组下标越界,仔细检查