【发布时间】:2021-11-25 03:12:23
【问题描述】:
#include <stdio.h>
void main()
{
int n,i;
int arr[5]={5,4,3,2,1};
int *ptr;
printf("input the number you want to find:\n");
scanf("%d",&n);
for(i=0;i<5;i++)
if(arr[i]==n)
{
ptr=&arr[i];
printf("number '%d' is present in the array and it is the %d st/nd/rd/th term in the array.\n its address is: %d",n,i+1,ptr);
}
}
**>我添加了 else printf("number not found");在这里,但它也循环和打印了很多 **
【问题讨论】:
-
您需要一个单独的变量来跟踪您是否找到了号码。
-
或者,一旦找到号码,
return。然后在循环之后添加您的printf,只有在找不到号码的情况下才会到达。如果您想报告多个匹配项,则无法使用。 -
@dbush 谢谢!我太傻了,我搜索了一下,发现和你建议的完全一样。无论如何,我感谢您的帮助。
-
@EugeneSh。有趣的。我会试试看。如您所见,我是初学者,但我真诚地感谢您抽出宝贵的时间为我提供有用的意见。再次感谢好心的先生。
-
也许还将
main()类型更改为int main(void)?
标签: arrays c function for-loop if-statement