#include<stdio.h>
int main(void)
{
int a,b,c,d,sum=0,input[10][10];
while(1)
{
start:
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
if(scanf(" %d",&input[a][b]),input[a][b]==EOF)
{
goto end;
}
}
}
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
sum+=input[a][b];
}
if(sum!=45)
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++)
{
sum+=input[b][a];
}
if(sum!=45)
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=0;a<9;a+=3)
{
for(b=0;b<9;b+=3)
{
for(c=1;c<=3;c++)
{
for(d=1;d<=3;d++)
{
sum+=input[a+c][b+d];
}
}
if(sum!=45)
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
}
printf("yes\n");
}
end:
sum=0;
}
請求幫忙看哪裡有問題
#include
int main(void)
{
int a,b,c,d,sum=0,input[10][10];
while(1) //讓程式一直動作
{
start:
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++) //輸入input[1~9][1~9]的數值
{
if(scanf(" %d",&input[a][b]),input[a][b]==EOF)//一旦程式遇到EOF就跳脫
{
goto end;
}
}
}
for(a=1;a<=9;a++) //將輸入加進sum
{
for(b=1;b<=9;b++) //將輸入加進sum(先直行再橫行)
{
sum+=input[a][b];
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=1;a<=9;a++) //將輸入加進sum
{
for(b=1;b<=9;b++) //將輸入加進sum(先橫行再直行)
{
sum+=input[b][a];
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=0;a<9;a+=3) //將輸入以九宮格的方式相加
{
for(b=0;b<9;b+=3)
{
for(c=1;c<=3;c++)
{
for(d=1;d<=3;d++)
{
sum+=input[a+c][b+d];
}
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
}
printf("yes\n"); //輸出yes
}
end:
sum=0;
}
請求幫忙看哪裡有問題
第一次發文
增加註解
希望各位大大幫忙
本人剛開始學習c語言
#include
int main(void)
{
int a,b,c,d,sum=0,input[10][10];
while(1) //讓程式一直動作
{
start:
for(a=1;a<=9;a++)
{
for(b=1;b<=9;b++) //輸入input[1~9][1~9]的數值
{
if(scanf(" %d",&input[a][b]),input[a][b]==EOF)//一旦程式遇到EOF就跳脫
{
goto end;
}
}
}
for(a=1;a<=9;a++) //將輸入加進sum
{
for(b=1;b<=9;b++) //將輸入加進sum(先直行再橫行)
{
sum+=input[a][b];
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=1;a<=9;a++) //將輸入加進sum
{
for(b=1;b<=9;b++) //將輸入加進sum(先橫行再直行)
{
sum+=input[b][a];
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
for(a=0;a<9;a+=3) //將輸入以九宮格的方式相加
{
for(b=0;b<9;b+=3)
{
for(c=1;c<=3;c++)
{
for(d=1;d<=3;d++)
{
sum+=input[a+c][b+d];
}
}
if(sum!=45) //判斷是否為45,若不是就輸出no,並且讓sum變回0,且回到程式最開頭
{
printf("no\n");
sum=0;
goto start;
}
sum=0;
}
}
printf("yes\n"); //輸出yes
}
end:
sum=0;
}
請求幫忙看哪裡有問題
第一次發文
增加註解
希望各位大大幫忙
本人剛開始學習c語言
應該是用太多迴圈了 同樣跑過9X9的數獨 一次判斷會比較快喔