大侠~请问 if(t==c && (c=='-'&&i==0)) break这句什么意思为什么要判断i==0,后面为什么t==10的时候break这是大整数计算的输入函数inscanf(+,10356,54654)void inscanf(char c,char *&n1,char *&n2){char t; int i=0;while(1) {

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 07:53:01

大侠~请问 if(t==c && (c=='-'&&i==0)) break这句什么意思为什么要判断i==0,后面为什么t==10的时候break这是大整数计算的输入函数inscanf(+,10356,54654)void inscanf(char c,char *&n1,char *&n2){char t; int i=0;while(1) {
大侠~请问 if(t==c && (c=='-'&&i==0)) break这句什么意思为什么要判断i==0,后面为什么t==10的时候break
这是大整数计算的输入函数inscanf(+,10356,54654)
void inscanf(char c,char *&n1,char *&n2)
{
char t;
int i=0;
while(1)
{
t=getchar();
if(t==c && (c=='-'&&i==0)) break; //?
n1[i++]=t;
}
n1[i]=0;
i=0;
while(1){
t=getchar();
if(t==10) break; //?
n2[i++]=t;
}
n2[i]=0;
putchar('=');
}
感激不尽啊

大侠~请问 if(t==c && (c=='-'&&i==0)) break这句什么意思为什么要判断i==0,后面为什么t==10的时候break这是大整数计算的输入函数inscanf(+,10356,54654)void inscanf(char c,char *&n1,char *&n2){char t; int i=0;while(1) {
1、
if(t==c && !(c=='-'&&i==0)) break是说当输入字符与传过来的字符c相同并且传过来的字符c不为‘-’时,或者是输入字符与传过来的字符c相同并且i不等于0的时候,跳出while循环.
2、
判断i是否等于0是要保证当传过来的字符c为‘-’时,数组n1非空
3、
10为 '\n'的ASCALL码值,所以当输入回车时会跳出while