#include <stdio.h> int GetBadDate(int (*pstdu)[4]) { int i,j; int *p; for(i=0;i<3;i++){ for(j=0;j<4;j++){ if(pstdu[i][j]<60){ } p = *(pstdu[i][j]); } } return p; } int main() { int pstdu[3][4]={{34,67,40,78},{78,89,70,56},{89,76,59,60}}; int *ppoes; int rat; int rat1; rat = GetBadDate(pstdu); printf("%d ",rat); } 代码错误
时间: 2024-01-14 12:01:56 浏览: 69
这段代码有多处错误:
1. 函数 GetBadDate 的返回值类型应该是 int *,因为函数要返回一个指针变量 p。
2. 变量 p 的初始值不应该为 *(pstdu[i][j]),应该为 pstdu[i]+j,即数组元素的地址。
3. 函数 GetBadDate 没有对变量 p 进行赋值,应该在 if 语句中添加一些处理语句。
4. 函数 GetBadDate 中的变量 i 和 j 的初始值应该为 0。
5. 变量 ppoes 没有被使用,可以删除。
下面是修改后的代码:
```c
#include <stdio.h>
int* GetBadDate(int (*pstdu)[4]) {
int i, j;
int *p = NULL;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
if (pstdu[i][j] < 60) {
p = pstdu[i] + j;
*p = 60;
}
}
}
return p;
}
int main() {
int pstdu[3][4] = {
{34, 67, 40, 78},
{78, 89, 70, 56},
{89, 76, 59, 60}
};
int *p;
p = GetBadDate(pstdu);
if (p != NULL) {
printf("%d\n", *p);
}
return 0;
}
```
注意,这里只是将代码修改为能够编译通过的形式,具体是否达到了代码预期的功能还需要根据实际需求进行调整。
阅读全文