题目3:C语言实现靶场设计问题
已知一块靶场大小为m*n(m行n列),每个点上都有一面旗子,我们的炮兵发射炮弹,炮弹一次只能炸掉一面旗子,每次炮弹的落点坐标都有记录,问你几炮过后,靶场还剩下几面旗子呢?
【输入】
有若干行,第一行为两个整数m,n,以空格分隔,都是整数,且1<=m<=n<=100;
接下来有若干行,每行有两个整数x,y,代表炮弹落点的坐标(行、列坐标,编号从0开始)。
【输出】
一个整数,代表最后靶场上剩余的旗子数。
提示:炮弹可能打在同一个位置,也可能脱靶,但保证在100*100的范围内。
| 测试输入 | 期待的输出 | |
| 测试用例 | 3 3 1 1 1 1 99 99 | 8 |
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n,x,y;
int location[105][2];
int sum,i=0,j=0,count=0,count1=0;
int ii=0,jj=0;
scanf("%d%d",&m,&n);
sum=m*n;
for(ii=0;ii<105;ii++){
for(jj=0;jj<2;jj++){
location[ii][jj]=0;
}
}
while(scanf("%d%d",&x,&y)!=EOF){
if(x<m&&y<n&&x>=0&&y>=0){
location[x][y]=1;
}
count++;
}
for(i=0;i<count;i++){
for(j=0;j<2;j++){
if(location[i][j]==1){
count1++;
}
}
}
printf("%d\n",sum-count1);
return 0;
}
本程序使用C语言解决靶场旗子计数问题。通过读取靶场尺寸和炮弹落点坐标,计算并输出靶场上剩余旗子的数量。考虑了炮弹可能重复击中同一位置的情况。

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



