|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX_LAYER_NUM 16
#define ROOM_IN_ONE_LAYER 3
int gbRoomState[MAX_LAYER_NUM][ROOM_IN_ONE_LAYER];
int CheckInFunc()
{
int RoomValue;
int LayerValue;
printf("CheckInFunc IN\n");
scanf_s("%d,%d", &RoomValue, &LayerValue);
if( (RoomValue > 0 && RoomValue <= ROOM_IN_ONE_LAYER)
&& (LayerValue > 0 && LayerValue <= MAX_LAYER_NUM))
{
if(0 == gbRoomState[LayerValue][RoomValue])
{
printf("ok, checkin success. \n");
gbRoomState[LayerValue][RoomValue] = 1;
}
else
{
printf("Room already used!\n");
return -1;
}
}
else
{
printf("error roomvalue & layervalue\n");
}
printf("CheckInFunc Out\n");
return 0;
}
int CheckOutFunc()
{
int RoomValue;
int LayerValue;
printf("CheckOutFunc IN\n");
scanf_s("%d,%d", &RoomValue, &LayerValue);
if((RoomValue > 0&&RoomValue <= ROOM_IN_ONE_LAYER)&&(LayerValue > 0&&LayerValue <= MAX_LAYER_NUM))
{
if(0 == gbRoomState[LayerValue][RoomValue])
{
printf("ok, checkout success. \n");
gbRoomState[LayerValue][RoomValue] = 1;
}
else
{
printf("Room already used!\n");
return -1;
}
}
else
{
printf("error roomvalue & layervalue\n");
}
printf("CheckOutFunc Out!");
return 0;
}
void main ()
{
char input[];
printf("*****RoomManagement*****:\n");
printf("welcome to use!!\n");
char str1[] = "checkin";
char str2[] = "checkout";
printf("Please make choice!(checkin or checkout)\n");
scanf_s("%s",input);
if(input == "checkin")
{
CheckInFunc();
}
else if(input == "checkout")
{
CheckOutFunc();
}
else
{
printf("input error!!");
}
}
本帖最后由 一叶枫残 于 2021-2-7 16:08 编辑
看到void main()主函数里面的char input[],定义字符串中括号里面一定要有值,看你程序输入的规模不大,改成 char input[20]就ok了
还有的是,下面的if条件要改为
- if(strcmp(input , str1) == 0) //这里的str1和下面的str2上面已经赋值为checkin 与 checkout,不用写成"checkin"与"checkout",当然也可以写成strcmp(input , "checkin") == 0,不强求
- {
- CheckInFunc();
- }
- else if(strcmp(input , str2) == 0)
- {
- CheckOutFunc();
- }
复制代码
比较字符串是否相等不能直接使用==,可以使用函数strcmp(),参数为两个字符串,当两个字符串相等时返回0。
加油!!!
|
|