/*****************************************************************************************/ //功能 更改 数组[57]-[64]各个元素数值,数组[57]-[64]每个元素取值范围是1-23。 //且8个元素值不能重复。 // menu_data_Value_tempkey//从主函数传递过来的值,然后在 与[57]-[64]各个元素数值比较 。 // break_Value返回处理好的值 /******************************************************************************************/ //第一次比较 从数组[57]-[64] 比较 /******************************************************************************************/ unsigned int taxis(unsigned int menu_data_Value_tempkey) { unsigned int temp8=0; //8次循环变量 unsigned int temp2_8=0; //8次循环变量 unsigned int temp3_8=0; //8次循环变量 unsigned int temp2_Flag=0; //第二次比较标志位 unsigned int temp3_Flag=0; //第三次比较标志位 unsigned int *C_P02; //数组指针 unsigned int differ_x; //数组临时变量 unsigned int break_Value; //返回的变量
if (menu_data_Value_tempkey!=0) { C_P02=&menu_data[57]; //取地址 differ_x=*C_P02; //从地址中取出要比较的数据 while (temp8<8) //循环判断是否有相同的数据 { differ_x=*C_P02; if (menu_data_Value_tempkey==differ_x)//当设置参数和数组某位相同时 { menu_data_Value_tempkey++; //参数值++ if (menu_data_Value_tempkey>23) //当参数超过23时 { menu_data_Value_tempkey=23; //强制为23 等待进入第三次比较时处理 temp3_Flag=1; //第三次比较标志位开 } else { temp2_Flag=1; //第二次比较标志位开 } } temp8++; C_P02++; //数组地址偏移 }
/***********************************************/ //第二次比较 重新从数组[57]-[64] 比较 /***********************************************/ if (temp2_Flag==1) { temp2_Flag=0; //第二次比较标志位关 C_P02=&menu_data[57];//取地址 differ_x=*C_P02; //从地址中取出要比较的数据 while (temp2_8<8) //循环判断是否有相同的数据 { if (menu_data_Value_tempkey==differ_x)//当设置的元素值和数组某位相同时 { menu_data_Value_tempkey++; //元素值++ if (menu_data_Value_tempkey>23) //元素值超过23时 { menu_data_Value_tempkey=23; //强制为23 temp3_Flag=1; //第三次比较标志位开 } } temp2_8++; C_P02++; //数组地址++ } }
/*************************************************/ //第三次比较 当参数超过23时从数组[64]-[57] 反向比较 /*************************************************/ if (temp3_Flag==1) { temp3_Flag=0; //第三次比较标志位关 C_P02=&menu_data[64]; //取地址 differ_x=*C_P02; //从地址中取出要比较的数据 while (temp3_8<8) //循环判断是否有相同的数据 { differ_x=*C_P02; if (menu_data_Value_tempkey==differ_x)//当设置参数值和数组某位相同时 { menu_data_Value_tempkey--; // 元素值减一 } temp3_8++; C_P02--; //数组地址偏移 } }
/***********************************************/ /***********************************************/ temp3_8=0; temp2_8=0; temp8=0; break_Value=menu_data_Value_tempkey; return break_Value;//返回处理好的值 } return 0; }
/******************************************************************************************/ |