c语言,设有一个整型数组,另输入一个整数,编程查找这个整数是不是在数组中出现过,若出现,则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言,设有一个整型数组,另输入一个整数,编程查找这个整数是不是在数组中出现过,若出现,则相关的知识,希望对你有一定的参考价值。
设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。
自己写的 但是觉得有问题 求解 并指出错误 最好是按照我这个思维方式改正下去 谢谢
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
int a[10],i,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=0;i<10;i++)
if(a[i]==t)
printf("%d",a[i]);
if(i<=t)
printf("nofound");
用机器跑 输入了十个数 然后输出个没有出现过的可以出现nofound 但是输入出现的数 会出现当时出现的数并且加nofound的 而不是题目要求的第几个数
然后自己画蛇添足的想将printf那里面a[i]变成i+1 不值这样可否 但是一样会出现nofound
谢谢 真是一语惊醒梦中人
追答还有 看了上面的,你要习惯用return 语句,推荐每次写完主函数加上return 0 当你要引用函数的时候除了定义void型或使用指针变量时要带回某个值的时候就要用到return语句了,如果你不常用可能会在你写完函数后忘记加而导致结果出错。
追问我有提问私信给你了 不知道你看到了没有 太多了写不下
追答看到了 回答了
if(i>=10)
printf("nofound"); 这个放在了for里面是不对的
要放在外面,因为当你的i大于10的时候是跳出循环
无法在执行循环里面的内容
void main()
int a[10],i,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=0;i<10;i++)
if(a[i]==t)
printf("%d",i+1);//既然是输出这个数第一次出现的位置,这里应该是i+1的值。
return 0;//找到这个数了,就结束。
//循环结束都还没有找到这个数就输出“nofound"。
printf("nofound");
追问
return我不习惯 能不能换个其他的 直接换成break我试了不行 retuan0是什么意思 返还一个0么?
追答return 表示这函数要返回的东西。这里表示主函数运行结束时返回一个0,在我们编程序时我们通常设置返回值来表示程序是否运行正常。
如果里面不用return 0,你可以用 break 或者exit()
当你用了break时,下面就不能直接用printf("nofound"); 要改成这样
if(i>=10)//i大于10时,表示遍历了整个数组,都没有找到这个数。
printf("nofound");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=0;i<10;i++)
if(a[i]==t)
printf("%d",a[i]);
break;//已经找到来,就跳出循环
printf("出现位置的下标是:%d",i);
你错在:没有break~追问
能不能完整的帮我写一遍 谢谢 还有就是要输出的位置是多少位 不是输出的那个数
追答#include
int main()
int a[10],i,t,x;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&t);
for(i=0;i<10;i++)
if(a[i]==t)
printf("%d",a[i]);
break;//已经找到来,就跳出循环
printf("出现位置的下标是:%d",i);
i就是数字位置,不是输出那个数。比如:
1 2 3 4 5 6 7 8 9 10 十个数字
搜索3
最后输出了i=2,这是因为下标从0开始
这样写我知道 我之所以i+1就是怕如果写了 考试老师这样会不会算错?
追答不会的 只是求结果 有的时候怎么方便怎么写最好
追问还有个问题 我在if后面加了另外一个if就是打印出nofound 但是结果不是现实nofound而是10 问题是不是出在最后的那个printf?
追答是的,得加上一个判断,如果循环完成之后没有找到,就printf("没有找到");
本回答被提问者和网友采纳以上是关于c语言,设有一个整型数组,另输入一个整数,编程查找这个整数是不是在数组中出现过,若出现,则的主要内容,如果未能解决你的问题,请参考以下文章