#include <stdio.h>
#include <stdlib.h>
#define OUT 0
#define IN 1
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
char input;
char sign=1;
int state=OUT;
long int intergate=0;
int count=0;
input=getchar();
//printf("%c\n",input);
while(input!='\n'){
if(input=='+'||input=='-'){
if(input=='-'){
sign=-1;
}
input=getchar();
}
//printf("%c\n",input);
if(input>='0'&&input<='9'){
state=IN;
++count;
intergate=input-'0';
while((input=getchar())>='0'&&input<='9'){
++count;
intergate=(input-'0')+intergate*10;
}
if(count>=11){
state=OUT;
}else if(count==10){
if(intergate<=4294967295&&intergate>=0){
}else{
state=OUT;
}
}
}else{
input=getchar();
}
if(state==IN){
printf("%d\n",intergate*sign);
state=OUT;
}
sign=1;
}
return -1;
}
注意1循环时候的等号==与赋值符号的差异
2注意循环后要初始化