- 33
- 0
int Setbit(int* A,int RowSize){
int i = 0;int Sum = 0;
for(i = 0;i < RowSize;i++)
if(A[i] == 0)
Sum ^= 1<<(RowSize-i-1);
return Sum;
}//Setbit;
bool Readbit(int S,int i,int RowSize){
return S&( 1 << (RowSize-1-i));
}//readbit;
void setzero(int** matrix,int RowSize,int ColSize,int Col, int Row){
int Z = 0;
for(Z = 0; Z < RowSize;Z ++) *(*(matrix+Col)+Z) = 0;
for(Z = 0;Z < ColSize;Z ++) *(*(matrix+Z)+Row) = 0;
}//setzero
void setZeroes(int** matrix, int matrixRowSize, int matrixColSize) {
int a,b,c;int Z = 0;
a = 0;b = c = 0;
int *s = (int*)calloc(matrixColSize,sizeof(int));
for(a = 0; a < matrixColSize; a++){
int *A = (int*)malloc(sizeof(int)*matrixRowSize);
memcpy(A,matrix[a],matrixRowSize*sizeof(int));
s[a] = Setbit(A,matrixRowSize);
}//setbit
for(a = 0; a < matrixColSize; a++){
if(s[a] !=0 )
for(b = 0; b < matrixRowSize; b++)
if( Readbit(s[a],b,matrixRowSize))
setzero(matrix,matrixRowSize,matrixColSize,a,b);
}
free(s);
}
int main(){
int N,M;int i,j;i = j = 0;
scanf("%d %d",&N,&M);
int **matrix = (int**)malloc(sizeof(int*)*N);
for(i = 0; i < N;i ++){
matrix[i] = (int*)calloc(M,sizeof(int));
for(j = 0; j < M; j++){
scanf("%d",&matrix[i][j]);
}
}
printf("N === %d M === %d\n",N,M);
for(i = 0; i < N; i++){
for( j = 0; j < M; j ++){
printf("matrix[%d][%d] == %d\t",i,j,matrix[i][j]);
}
printf("\n");
}//打印读入的二维数组
setZeroes(matrix,M,N);
for(i = 0; i < N; i++){
for( j = 0; j < M; j ++){
printf("matrix[%d][%d] == %d\t",i,j,matrix[i][j]);
}
printf("\n");
}//打印置零后的二维数组
return 0;
}
请问,平时用的Ubuntu14.04 编程,每次遇到相同问题,该如何在本地,用那些命令 调试。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
换我堕落ミ 普通会员 1楼当你的C语言代码在本地编译和运行没有问题,但在OJ(在线评测系统)上无法通过时,可能存在以下几种情况: 1. **环境差异**:OJ的编译器版本、操作系统环境可能与你的本地环境不同,导致某些特性或库函数的支持程度不同。例如,一些高级的C11特性或者特定编译器扩展功能在OJ的环境中可能不支持。 2. **输入输出格式不符**:OJ对程序的标准输入输出有严格的要求,如scanf()、printf()等函数的使用需要严格按照题目要求的格式进行,否则可能会因为读取或输出格式错误而被判题系统判定为错误。 3. **代码逻辑错误**:虽然代码在你的测试数据下能够正确运行,但可能存在一些边界条件或特殊情况没有处理好,当OJ使用更全面或特殊的测试数据时,这些问题就会暴露出来。 4. **内存限制**:OJ通常会对程序的运行时间和空间占用有限制,如果你的代码在大数据量下存在内存泄漏或者时间复杂度过高的问题,在OJ上就可能无法通过。 5. **代码规范**:部分OJ平台对于代码风格、命名规则等有一定要求,如果不符合也可能导致无法通过。 解决办法: - **仔细阅读题目描述及样例输入输出**,确保对题目的理解和解题思路无误,并且输入输出格式符合要求。 - **检查并修改代码中可能存在的边界条件问题**,增强代码的健壮性。 - **尽量避免使用可能导致内存泄漏或效率低下的编程方式**,优化算法以降低时间复杂度和空间复杂度。 - **了解OJ使用的编译器和相关环境设置**,并尽可能使自己的代码兼容这些环境。 - **提交前,利用多种测试数据进行充分的本地测试**,包括边界条件、特殊案例等。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
