C/Java
(想知道错在哪)
1.c二维数组在vs上开到10010x10010(题目要求),在定义时报栈溢出错误,以前貌似是可以开到这么大的
2.当我缩小到100x100,仍不能完全通过,到底是错哪里呀??
#include<stdio.h>
int main() {
int n, m, q;
scanf_s("%d %d %d", &n, &m, &q);
int a[100][100] = { 0 };
for (int i = 0; i < q; i++) {
int t,c;
scanf_s("%d %d", &t, &c);
if (t == 0) {
for (int j = 0; j < m; j++) {
a[c][j] = 1;
}
}
if (t == 1) {
for (int j = 0; j < n; j++) {
a[j][c] = 1;
}
}
}
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] == 0) {
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}
3.用java写,经常报“非零返回错误”,这段代码又有什么问题呀,同c的思路是一样的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n,m,q;
n=in.nextInt();
m=in.nextInt();
q=in.nextInt();
int [][]arr=new int [n][m];
for(int i=0;i<q;i++) { //q行数据
int t=in.nextInt();
int c=in.nextInt();
if(t==0) {
for(int j=0;j<m;j++) {
arr[c][j]=1;
}
}
if(t==1) {
for(int j=0;j<n;j++) {
arr[j][c]=1;
}
}
}
int cnt=0;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(arr[i][j]==0) {
cnt++;
}
}
}
System.out.println(cnt);
}
}
运行结果: