69,371
社区成员
发帖
与我相关
我的任务
分享
for(int i=0;i<nn;i++)
{
loop: for(int j=0;j<p->gcNc[0].cellNc[i].NombreFrequences;j++)
{
int freq = rand() % m +1;
//exist || non satisfait Cii contrainte(CSC). exemple rand() 7,encore rand() 7
if(a[freq] == 1)
{
j--;
continue;
}
//non exist && satisfait contrainte. exemple: rand() 7, apres rand() 8
if(a[freq] != 1)
{
for(int k=0;k<p->gcNc[0].cellNc[i].NombreFrequences;k++)
{
if((p->gcNc[0].cellNc[i].frequences[k]-freq >= Cii || p->gcNc[0].cellNc[i].frequences[k]-freq <= -Cii ))
{
a[freq] = 1;
p->gcNc[0].cellNc[i].frequences[j] = freq;
printf("%d ",p->gcNc[0].cellNc[i].frequences[j]);
}else{
goto loop; ///////////////////////////////////?????????????????????????????????
printf("continue");
}
}
}
}
for(int i){
for(int j){
}
if(){
for(){
if(){
j--;
break;
}
}
}
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <wincon.h>
FILE *f;
char c;
long offset;
char patch[3]="\x1b\x6d";//\x00 default
void main(int argc,char **argv)//".vs\0\x31\0\0\x1f\x00\x08"->".vs\0\x31\0\0\x1b\x6d\x00"
{
if (argc!=2) {
printf("VxPatch filename.vx");
getch();GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,0);
return;
}
if (NULL==(f=fopen(argv[1],"r+b"))) {
printf("----------Can not find %s!",argv[1]);
getch();GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,0);
return;
}
while (1) {
c=fgetc(f);
if (feof(f)) break;//
if (c=='.') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='v') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='s') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\0') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\x31') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\0') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\0') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\x1f') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\x00') {
c=fgetc(f);
if (feof(f)) break;//
if (c=='\x08') {
offset=ftell(f);
offset=offset-3;
fseek(f,offset,SEEK_SET);
if (3!=fwrite(patch,1,3,f)) {
fclose(f);
printf("----------%s VxPached fwrite error!",argv[1]);
getch();GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,0);
} else {
fclose(f);
printf("OK.");
}
return;
} else break;//
} else break;//
} else if (c=='\x1b') {
fclose(f);
printf("%s is VxPatched. Please type vlc.err!",argv[1]);
getch();GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,0);
return;
} else break;//
}
}
}
}
}
}
}
}
fclose(f);
printf("----------%s is not a unVxPached .vx file!",argv[1]);
getch();GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,0);
}
请牢记:源代码本身的书写是否结构化或面向对象或符合设计模式或敏捷…并不重要,重要的是你是否使用结构化或面向对象或符合设计模式或敏捷…的方法命名标识符、阅读、修改、检查、测试源代码。
[/quote]
恩,书写格式一定程度上反映出设计的优劣,当然不是绝对化。有些算法的深层次嵌套“很难”避免。
你的这个代码,条件判断如此之多,汇编出来的跳转指令也将会很多,它并不是高效的实现,也不是只能如此实现!这代码让不是自己写的人,维护起来似乎不那么简单!
for (int i1 = 0; i1 < 10; i1++) // for1
{
bool break1 = false;
for (int i2 = 0; i2 < 10; i2++) // for2
{
bool break2 = false;
for (int i3 = 0; i3 < 10; i3++) // for3
{
bool break3 = false;
for (int i4 = 0; i4 < 10; i4++) // for4
{
bool break4 = false;
for (int i5 = 0; i5 < 10; i5++) // for5
{
break4 = true;
break; // break for5
}
if (break4)
{
break3 = true;
break; // break for4
}
}
if (break3)
{
break2 = true;
break; // break for3
}
}
if (break2)
{
break1 = true;
break; // break for2
}
}
if (break1)
{
break; // break for1
}
}
for(int i){
Loop:
for(int j){
}
if(){
for(){
if(){
j--;
goto Loop;
}
}
}
[/quote]
Loop写错了,应该在外面
for(int i){
for(int j){
Loop:
}
if(){
for(){
if(){
j--;
goto Loop;
}
}
}