求解,还有为什么我while(scanf("%c",&a[i])!=EOF)不行
答案:1 悬赏:80 手机版
解决时间 2021-01-25 21:23
- 提问者网友:风月客
- 2021-01-25 14:06
求解,还有为什么我while(scanf("%c",&a[i])!=EOF)不行
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-01-25 14:27
哦,你是说 “大数加法”,给你一个 c 程序,你修改一下 就可以满足你的需要来使用。
#include
#define MAXINT 1000
int bigplus(unsigned char a[], unsigned char b[], unsigned char c[], int La, int Lb){
int i,len;
len=(La>Lb? La:Lb);
memset(c,0,MAXINT*sizeof(unsigned char));
for (i=0;i {
c[i] = c[i] + (a[i]+b[i]);
if (c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]=c[i+1]+1;
}
};
if (c[len]>0) len++;
for (i=len-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
return 0;
}
void main()
{
unsigned char a[MAXINT],b[MAXINT],c[MAXINT];
int La,Lb,i,j;
char ca[MAXINT],cb[MAXINT];
int N_case;
printf("input case number 1:\n");
scanf("%d",&N_case);
for (j=0;j {
memset(a,0,MAXINT*sizeof(unsigned char));
memset(b,0,MAXINT*sizeof(unsigned char));
printf("input a b\n");
scanf("%s %s",ca, cb);
La = strlen(ca);
Lb = strlen(cb);
for (i=0;i for (i=0;i
printf("\nCase %d:\n",j+1);
printf("%s + %s =",ca,cb);
(void) bigplus(a,b,c,La,Lb);
printf("\n");
};
}
==
scanf("%c",&a[i]) 的返回值 等于成功读入变量 的个数,这里 只有一个变量,所以 成功 得 1,不成功 得 0,不等于 EOF (负1).
while( scanf(...) != EOF ) 总是成立,于是 一直 while (真)下去。追问谢谢,尤其是你的最后的讲解让我豁然开朗那我用cin行吗
#include
#define MAXINT 1000
int bigplus(unsigned char a[], unsigned char b[], unsigned char c[], int La, int Lb){
int i,len;
len=(La>Lb? La:Lb);
memset(c,0,MAXINT*sizeof(unsigned char));
for (i=0;i
c[i] = c[i] + (a[i]+b[i]);
if (c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]=c[i+1]+1;
}
};
if (c[len]>0) len++;
for (i=len-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
return 0;
}
void main()
{
unsigned char a[MAXINT],b[MAXINT],c[MAXINT];
int La,Lb,i,j;
char ca[MAXINT],cb[MAXINT];
int N_case;
printf("input case number 1:\n");
scanf("%d",&N_case);
for (j=0;j
memset(a,0,MAXINT*sizeof(unsigned char));
memset(b,0,MAXINT*sizeof(unsigned char));
printf("input a b\n");
scanf("%s %s",ca, cb);
La = strlen(ca);
Lb = strlen(cb);
for (i=0;i
printf("\nCase %d:\n",j+1);
printf("%s + %s =",ca,cb);
(void) bigplus(a,b,c,La,Lb);
printf("\n");
};
}
==
scanf("%c",&a[i]) 的返回值 等于成功读入变量 的个数,这里 只有一个变量,所以 成功 得 1,不成功 得 0,不等于 EOF (负1).
while( scanf(...) != EOF ) 总是成立,于是 一直 while (真)下去。追问谢谢,尤其是你的最后的讲解让我豁然开朗那我用cin行吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯