居然没有人发免费的c的答案,我很生气


答案如下!!!!(傻瓜式做法)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n, m, k;
scanf("%d %d %d",&n, &m, &k);
int i=0;
int x[25], y[25];
for(i=0; i<m; i++){
scanf("%d %d", &x[i], &y[i]);
x[i] -= 1;
y[i] -= 1;
}
int o[5], p[5];
int a[100][100]={0};
//↓判断是否越界并把灯亮处改成1
for(i=0; i<m; i++){
a[x[i]][y[i]] = 2;
if(x[i]-2>=0){
a[x[i]-2][y[i]] = 1;
}
if((x[i]-1>=0) && (y[i]-1>=0)){
a[x[i]-1][y[i]-1] = 1;
}
if((x[i]-1>=0) && (y[i]+1<n)){
a[x[i]-1][y[i]+1] = 1;
}
if(x[i]-1>=0){
a[x[i]-1][y[i]] = 1;
}
if(y[i]-2>=0){
a[x[i]][y[i]-2] = 1;
}
if(y[i]-1>=0){
a[x[i]][y[i]-1] = 1;
}
if(y[i]+1<n){
a[x[i]][y[i]+1] = 1;
}
if(y[i]+2<n){
a[x[i]][y[i]+2] = 1;
}
if((x[i]+1<n) && (y[i]-1>=0)){
a[x[i]+1][y[i]-1] = 1;
}
if((x[i]+1<n) && (y[i]+1<n)){
a[x[i]+1][y[i]+1] = 1;
}
if(x[i]+1<n){
a[x[i]+1][y[i]] = 1;
}
if(x[i]+2<n){
a[x[i]+2][y[i]] = 1;
}
}
//萤石的坐标导入,以及把灯亮的改成1
if (k>0){
for(i=0; i<k; i++){
scanf("%d %d", &o[i], &p[i]);
o[i] -= 1;
p[i] -= 1;
}
for(i=0; i<k; i++){
a[o[i]][p[i]] = 2;
if(o[i]-2>=0){
a[o[i]-2][p[i]] = 1;
}
if((o[i]-2>=0) && (p[i]-2>=0)){
a[o[i]-2][p[i]-2] = 1;
}
if((o[i]-2>=0) && (p[i]-1>=0)){
a[o[i]-2][p[i]-1] = 1;
}
if((o[i]-2>=0) && (p[i]+2<n)){
a[o[i]-2][p[i]+2] = 1;
}
if((o[i]-2>=0) && (p[i]+1<n)){
a[o[i]-2][p[i]+1] = 1;
}
if((o[i]-1>=0) && (p[i]-1>=0)){
a[o[i]-1][p[i]-1] = 1;
}
if((o[i]-1>=0) && (p[i]-2>=0)){
a[o[i]-1][p[i]-2] = 1;
}
if((o[i]-1>=0) && (p[i]+1<n)){
a[o[i]-1][p[i]+1] = 1;
}
if((o[i]-1>=0) && (p[i]+2<n)){
a[o[i]-1][p[i]+2] = 1;
}
if(o[i]-1>=0){
a[o[i]-1][p[i]] = 1;
}
if(p[i]-2>=0){
a[o[i]][p[i]-2] = 1;
}
if(p[i]-1>=0){
a[o[i]][p[i]-1] = 1;
}
if(p[i]+1<n){
a[o[i]][p[i]+1] = 1;
}
if(p[i]+2<n){
a[o[i]][p[i]+2] = 1;
}
if((o[i]+1<n) && (p[i]-1>=0)){
a[o[i]+1][p[i]-1] = 1;
}
if((o[i]+1>=0) && (p[i]-2>=0)){
a[o[i]+1][p[i]-2] = 1;
}
if((o[i]+1<n) && (p[i]+1<n)){
a[o[i]+1][p[i]+1] = 1;
}
if((o[i]+1>=0) && (p[i]+2<n)){
a[o[i]+1][p[i]+2] = 1;
}
if(o[i]+1<n){
a[o[i]+1][p[i]] = 1;
}
if(o[i]+2<n){
a[o[i]+2][p[i]] = 1;
}
if((o[i]+2<n) && (p[i]-2>=0)){
a[o[i]+2][p[i]-2] = 1;
}
if((o[i]+2<n) && (p[i]-1>=0)){
a[o[i]+2][p[i]-1] = 1;
}
if((o[i]+2<n) && (p[i]+2<n)){
a[o[i]+2][p[i]+2] = 1;
}
if((o[i]+2<n) && (p[i]+1<n)){
a[o[i]+2][p[i]+1] = 1;
}
}
}
//记录0的个数
int j=0;
int num=0;
for (j=0; j<n; j++){
for (i=0; i<n; i++){
if(a[i][j] == 0){
num = num + 1;
}
}
}
// printf("%d", a[o[0]][p[0]]);
printf("%d", num);
return 0;
}
嘻嘻
1094

被折叠的 条评论
为什么被折叠?



