for(i=0;i<9;i++) { if((tarshut[i]-tarshut[i+1])!=0) { printf("tarshut[%d]=%d\n",i,tarshut[i]); return 0; } } return 0;
时间: 2024-04-12 12:30:41 浏览: 43
一个程序 请输入0~9之间的数
4星 · 用户满意度95%
在您提供的代码中,您想要检查数组 `tarshut` 中的相邻元素是否相等,并且如果找到不相等的元素,则打印其索引和值。如果我理解得正确,以下是修正后的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int *fun()
{
int *tarshut;
tarshut = (int*)malloc(9 * sizeof(int));
if (tarshut == NULL) {
printf("内存分配失败");
exit(1);
}
for (int i = 0; i < 9; i++) {
tarshut[i] = i;
}
return tarshut;
}
int main()
{
int *tarshut;
tarshut = fun();
for (int i = 0; i < 8; i++) {
if (tarshut[i] != tarshut[i+1]) {
printf("tarshut[%d] = %d\n", i, tarshut[i]);
return 0;
}
}
free(tarshut);
tarshut = NULL;
return 0;
}
```
修正后的代码在 `main` 函数中添加了一个循环,该循环遍历数组 `tarshut` 的前 8 个元素。在每次迭代中,它将当前元素与下一个元素进行比较。如果它们不相等,则打印当前元素的索引和值,并返回。这样,您将只打印第一个不相等的元素。请注意,在循环结束后,您仍然需要释放内存并将指针设置为 `NULL`。
阅读全文