else
[尝试从这个问题中获得可用的东西:]
在上面的排序代码中,我收到错误的{{1}}错误。
[原文:]
这是短路的问题我得错了其他错误 plc复制此代码并尝试使用turbo c一次,我希望你能纠正这个错误 只有一个是
答案 0 :(得分:4)
您的编译器抱怨错误放置else
,因为有一个else
没有前面的if
:
// ...
for (j=1; j<n-i; j++)
{
if(a[j]<=a[j+1])
{
// ...
} // END OF IF
} // END OF FOR
else
{
continue;
}
// ...
代码中的else
不会跟在{ }
之后的if
块,而是for
循环之后的#include<conio.h>
块。这是一个简单的语法错误。
这可以轻松查看代码是否正确缩进。定下你的代码。 (编者注:问题中的代码最初没有缩进。)
除此之外还有其他问题:
void main()
完全未使用,请将其删除。 (从不考虑顺便使用它)main
这不是int main()
函数的正确签名,请尝试int main(int argc, char** argv)
或for (i=1; i<=n; i++)
0
数组从n - 1
到scanf("%f",a[i]);
编入索引。float
此处的第二个参数需要是指向&(a[i])
应存储位置的指针:for (i=1; i<=n; i++);
{ }
最后的分号使得这个循环没有任何用处。通常,请始终在for
和if
之后使用table1 : table2:
ID1 ID2
----- -----
1 102
2 103
阻止。答案 1 :(得分:0)
一些算法备注:
else { continue; }
无用(for j = i + 1 ; j < n ; j++)
一些实施备注:
man 3 scanf
man 3 strtol
)传递更安全:有了它,你可以控制整个单词是否已被转换为整数。n
)是否不大于数组长度(N
)for (i = 0 ; i < n ; i++)
而不是for (i = 0 ; i <= n - 1 ; i++)
循环风格更为常规。答案 2 :(得分:-1)
C中的数组从索引0
开始,以索引n - 1
结束。您的输入循环开始在索引1
处写入,并在(可能不存在)索引n
处结束。先解决这个问题。
编写这样一个循环的规范方法是
for (i = 0; i < n; i++) { /* ... */ }