C 在数组中使用GOTOs
我必须制作一个C程序(不递归地使用,else,for,while,do{}while,还有,if的构造不能包含“return”),以从数组中找到最大数。 下面是我目前的代码:C 在数组中使用GOTOs,c,arrays,C,Arrays,我必须制作一个C程序(不递归地使用,else,for,while,do{}while,还有,if的构造不能包含“return”),以从数组中找到最大数。 下面是我目前的代码: #include <stdio.h> void function() { int i, maximum; int array[] = {1,2,3,4}; maximum = array[0]; if (array[i] > maximum) {
#include <stdio.h>
void function()
{
int i, maximum;
int array[] = {1,2,3,4};
maximum = array[0];
if (array[i] > maximum)
{
maximum = array[i];
}
printf("The biggest element from the array is %d\n ", maximum);
}
int main(void)
{
functie();
}
#包括
空函数()
{
int i,最大值;
int数组[]={1,2,3,4};
最大值=数组[0];
if(数组[i]>最大值)
{
最大值=数组[i];
}
printf(“数组中最大的元素是%d\n”,最大值);
}
内部主(空)
{
函数();
}
但我不知道如何在不使用“for”的情况下读取数组。请帮帮我?我看到了一些使用goto的东西,但我不知道如何…您可以使用
goto
语句来创建循环。这是一个来自美国的例子
inti=0;
第一个循环:
printf(“%d”,i);
i++;
如果(i您愿意,可以使用goto语句,如下所示:
#include <stdio.h>
void function()
{
int array[] = {1,2,3,4};
int i = 1 , maximum , size = sizeof(array) / sizeof(int);
maximum = array[0];
label:
if (array[i] > maximum)
{
maximum = array[i];
}
i++;
if( i < size )
goto label;
printf("The biggest element from the array is %d\n ", maximum);
}
int main(void)
{
function();
}
#包括
空函数()
{
int数组[]={1,2,3,4};
int i=1,最大值,size=sizeof(数组)/sizeof(int);
最大值=数组[0];
标签:
if(数组[i]>最大值)
{
最大值=数组[i];
}
i++;
如果(i<尺寸)
后藤标签;
printf(“数组中最大的元素是%d\n”,最大值);
}
内部主(空)
{
函数();
}
你可以使用goto
来创建跳转,让程序表现得像有一个循环。但是要小心,.@Haris使用goto
这样的方式让一些程序员认为goto
是邪恶的。使用它肯定不是正确的方式,这是的做和而的目的。只是有一件事,现在i
在你的代码中没有初始化。@MartinJames:不公平。例如,发现关于必须实现排序函数的问题并不少见。当然,每个人都会建议“为什么不使用qsort
”-但显然这些是训练问题。在这种情况下,课程可能是在为汇编编程做准备。@MartinJames这样想:事实上,有人不知道如何以这种方式使用goto
,这是一件好事,对吗?:-)建议添加“以这种方式使用goto”或“为此目的”。。。C代码中广泛接受的goto
用法是在函数末尾跳转到一些常见的清除/错误处理代码。
#include <stdio.h>
void function()
{
int array[] = {1,2,3,4};
int i = 1 , maximum , size = sizeof(array) / sizeof(int);
maximum = array[0];
label:
if (array[i] > maximum)
{
maximum = array[i];
}
i++;
if( i < size )
goto label;
printf("The biggest element from the array is %d\n ", maximum);
}
int main(void)
{
function();
}