void a(int b[]); int main() { int f[10],y; for (y = 0; y <= 10; y++) { scanf_s("%d", &f[y]); } a(f); } void a(int b[]) { int i, d = 0, c,e; c = strlen(b); for (i = 0; i < c; i++) { if (b[d] > b[i]) { e = b[d], b[d] = b[i], b[i] = e; } } }中的strlen报错
时间: 2024-03-25 16:42:09 浏览: 33
在这段代码中,strlen() 函数被用于计算整型数组 b 的长度,但是 strlen() 函数用于计算字符串的长度,不适用于计算数组的长度,因此会出现错误。正确的方法是使用 sizeof() 运算符来获取整型数组 b 的长度。修改后的代码如下:
```c
void a(int b[]);
int main() {
int f[10],y;
for (y = 0; y < 10; y++) {
scanf_s("%d", &f[y]);
}
a(f);
}
void a(int b[]) {
int i, d = 0, c = sizeof(b)/sizeof(int), e;
for (i = 0; i < c; i++) {
if (b[d] > b[i]) {
e = b[d], b[d] = b[i], b[i] = e;
}
}
}
```
这样就可以正确地计算整型数组 b 的长度了。
阅读全文