今天发现c++buidler的一个问题
StrToInt()居然不能和int变量直接比较,只能和数比较。这是为什么?
偶然看到,过来刷个热度。。我没学C++buider,
从名称来看strToInt()的返回值应该是个Int,所以你把你作比较的代码发上来看看,是不是逻辑写错了
/*int *leapyear(int a) { int a1[]={31,28,31,30,31,30,31,31,30,31,30,31}; int a2[]={31,29,31,30,31,30,31,31,30,31,30,31}; int *a1_a=a1,*a2_a=a2; if((a%4==0&&a%100!=0)||a%400==0) return a2_a; else return a1_a; } */ void __fastcall TAdd::Button1Click(TObject *Sender) { //int *b,b1; //b=leapyear(StrToInt(LabeledEdit1->Text)); //b1=*(b+StrToInt(LabeledEdit2->Text)-1); cout<<b1<<endl;//语法我不知道,反正你在这里输出b1看看计算出什么值来了,b1绝对是可以起作用的 if((StrToInt(LabeledEdit1->Text)<1990||StrToInt(LabeledEdit1->Text)>2100)||(StrToInt(LabeledEdit2->Text)<1||StrToInt(LabeledEdit2->Text)>12)||(StrToInt(LabeledEdit3->Text)<1||StrToInt(LabeledEdit3->Text)>31))//我把后面的31换成b1就起不到作用,没办法只好注释掉了。 { Application->MessageBox("您输入的数值超出范围!","警告信息",MB_ICONWARNING); Beep(); } else Label2->Caption="第"+IntToStr(djz1(StrToInt(LabeledEdit1->Text),StrToInt(LabeledEdit2->Text),StrToInt(LabeledEdit3->Text)))+"周"; }
[此贴子已经被作者于2016-9-9 13:32编辑过]