#11887: c語言 這樣TLE 求解QQ


vincent08tw (zanzara)


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int sudo[9][9];
int i,j,ie,je,row,column,square;
start:
ie = 0,je = 0,row = 0,column = 0,square = 0;
for(i = 0;i < 9;i++){
for(j = 0;j < 9;j++){
scanf("%d",&sudo[i][j]);
}
}
for (i = 0;i < 9; i++){
for(j = 0;j < 9;j++){
row += sudo[i][j];
}
if (row != 45){
printf("no\n");

goto start;
}
row = 0;
}
for (j = 0;j < 9; j++){
for(i = 0;i < 9;i++){
column += sudo[i][j];
}
if (column != 45){
printf("no\n");
goto start;
}
column = 0;
}
do{

for (i = ie;i < ie + 3;i++){
for(j = je;j < je + 3;j++){
square += sudo[i][j];
}
}
if (square != 45){
printf("no\n");
goto start;
}
square = 0;
je += 3;;

if (j == 9 && i == 3){
ie = 3;
je = 0;

}
if (j == 9 && i == 6){
ie = 6;
je = 0;
}
if (i == 9 & j == 9){
ie = 9;
}
}while(i != 9);
printf("yes\n");
goto start;
return 0;
}

#11889: Re:c語言 這樣TLE 求解QQ


joge (joge)


沒有結束點。可判斷scanf傳回值來結束。

請參考其他程式的讀取資料部份。

int m;

start:

ie = 0,je = 0,row = 0,column = 0,square = 0;

for(i = 0;i < 9;i++){

for(j = 0;j < 9;j++){

m=scanf("%d",&sudo[i][j]);

if(m==-1) return 0;

if(m==0) j--;

}

}