gpt4 book ai didi

c - 如果满足条件,则递减数组并打印值

转载 作者:行者123 更新时间:2023-11-30 19:54:38 25 4
gpt4 key购买 nike

我想递减一个指向数组最后一个元素的指针,并检查条件:如果指针的值小于5,则不执行任何操作并进入下一轮循环,如果不是,即if该值等于或大于 5,打印该值。因此,对于示例中的数组,我只想打印 6,即第一次遇到等于或大于 5 的值。我尝试了下面的代码,但在编译时没有错误,它不打印任何值值(value)。我非常感谢您对此的评论。

#include<stdio.h>

//The is a C program to decrement an array from the last element to the first.
int x[11] = {5, 6, -4, -3, -2, -1, 4, 3, 2, 1, -2};
int *lastElem, count;
int main (void) {
lastElem = &x[10];
for (count = 0; count < 11; count++)
if (abs(*lastElem) < 5)
continue;
else
printf("%d\n", *lastElem--);
return 0;
}

最佳答案

您的递减逻辑有问题。如果该值小于 5,则您会丢失递减值。

检查下面的代码。

#include<stdio.h>

//The is a C programme to decrement an array from the last element to the first.
int x[11] = {5, 6, -4, -3, -2, -1, 4, 3, 2, 1, -2};
int *lastElem, count;
int main (void) {
lastElem = &x[10];
for (count = 0; count < 11; count++)
{
if (*lastElem >= 5)
{
printf("%d\n", *lastElem);
break ;
}
lastElem--;
}
return 0;
}
<小时/>

编辑:

当您修改问题以包含绝对值比较时,更改如下。

注意:对最初提出的问题进行一些重大更改(这将改变行为和输出)时,请务必记下这一点,如果可能,请正确提及编辑内容。

#include<stdio.h>
#include <stdlib.h>

//The is a C programme to decrement an array from the last element to the first.
int x[11] = {5, -6, -4, -3, -2, -1, 4, 3, 2, 1, -2};
int *lastElem, count;
int main (void) {
lastElem = &x[10];
for (count = 0; count < 11; count++)
{
if ( abs(*lastElem) >= 5)
{
printf("%d\n", *lastElem);
break;
}
lastElem--;
}
return 0;
}

关于c - 如果满足条件,则递减数组并打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com