Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在数组中使用GOTOs_C_Arrays - Fatal编程技术网

C 在数组中使用GOTOs

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) {

我必须制作一个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) 
    {
        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();
}