标题:求助!关于数组中的一个问题!
只看楼主
两岁半
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-12-28
 问题点数:0 回复次数:7 
求助!关于数组中的一个问题!
大家好,我是初学C语言的学生,我想输入一个数,看是不是在给定的数组中,如果是打出是第几个,如果不是,打出不在数组中,下面是我定的程序:
#include <stdio.h>
main ()
{
    int array [10] = {1, 0, 4, 8, 12, 65, -76, 100, -45, 123};//定义一维数组,并初始化
           int location;   //记录输入的数
    int i;

    printf("一维数组是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%4d", array [i]);
    }

    printf("\n请输入一个数看是不是在数组中: ");
    scanf("%d", &location);

    for (i = 0; i < 10; i++)
    {
        if (location == array [i]) //判断输入的数是不是在数组中
        {    
            printf("\n输入的数在是数组中,且是数组中的第%d个位置\n", i + 1);
            break;
        }
         printf("输入的数不在数组中!\n");
    }
    
}
如输入100,可是结果是:"输入的数不在数组中!"也打出来,直到打出"输入的数在数组中,且是数组中的第8个位置"为止,
请问怎么修改才能只打出在数组中的第几个位置,或者不在数组中
谢谢~!
搜索更多相关主题的帖子: int array location 定义 
2007-12-28 12:47
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
得分:0 
把 printf("输入的数不在数组中!\n");
放到FOR循环外面

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-12-28 12:52
两岁半
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-12-28
得分:0 
如果放在FOR外面的话会在最后也打出哪一句的,就是
输入的数在是数组中,且是数组中的第8个位置
输入的数不在数组中!

不过还是谢谢妳哈
2007-12-28 13:09
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
#include<stdio.h>
void main ()
{
    int array [10] = {1, 0, 4, 8, 12, 65, -76, 100, -45, 123};//定义一维数组,并初始化
           int location;   //记录输入的数
    int i,j;

    printf("一维数组是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%4d", array [i]);
    }

    printf("\n请输入一个数看是不是在数组中: ");
    scanf("%d", &location);

    for (i = 0; i < 10; i++)
    {
        if (location == array [i]) //判断输入的数是不是在数组中
        {   
            printf("\n输入的数在是数组中,且是数组中的第%d个位置\n", i + 1);
            j=i;
            
        }
        if(location!=array[9]&&i==9)
          printf("输入的数不在数组中!\n");
     }
  
}
2007-12-28 13:10
两岁半
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-12-28
得分:0 
谢谢sunkaidong给的提示哈,
不过妳哪样写的话,也还是会出现"输入的数不在数组中"
我以经修改好了,
#include <stdio.h>
main ()
{
    int array [10] = {1, 0, 4, 8, 12, 65, -76, 100, -45, 123};//定义一维数组,并初始化
    int location;   //记录输入的数
    int i,j = 0;

    printf("一维数组是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%4d", array [i]);
    }

    printf("\n请输入一个数看是不是在数组中: ");
    scanf("%d", &location);

    for (i = 0; i < 10; i++)
    {
        if (location == array [i]) //判断输入的数是不是在数组中
        {    
            printf("\n输入的数在是数组中,且是数组中的第%d个位置\n", i + 1);
            j++;
            break;
        }
        if(location!=array[9]&&i==9)

         printf("输入的数不在数组中!\n");
    }
    
}
谢谢大家~!^_^
2007-12-28 13:19
两岁半
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-12-28
得分:0 
哦,发错了是不要j=0;
J++;
 这两句
2007-12-28 13:21
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
得分:0 
这样改一下就可以了.
#include <stdio.h>
main ()
{
    int array [10] = {1, 0, 4, 8, 12, 65, -76, 100, -45, 123};/*/定义一维数组,并初始化*/
           int location;   /*/记录输入的数*/
    int i;

    printf("一维数组是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%4d", array [i]);
    }

    printf("\n请输入一个数看是不是在数组中: ");
    scanf("%d", &location);

    for (i = 0; i < 10; i++)
    {
        if (location == array [i]) /*//判断输入的数是不是在数组中*/
        {   
            
            break;
        }
         
    }
    if(i>=10)
        printf("输入的数不在数组中!\n");
     else
        printf("输入的数在是数组中,且是数组中的第%d个位置\n", i + 1);   
   
}
2007-12-29 11:12
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
得分:0 
也可以这样实现的啊。。。。 。 增加一个标志位 flag


#include <stdio.h>
main ()
{
    int array [10] = {1, 0, 4, 8, 12, 65, -76, 100, -45, 123};//定义一维数组,并初始化
    int location;   //记录输入的数
    
    int i;
   
   int flag=-1;      //设置一标志位。。。。。

    printf("一维数组是:\n");
    for (i = 0; i < 10; i++)
    {
        printf("%4d", array [i]);
    }

    printf("\n请输入一个数看是不是在数组中: ");
    scanf("%d", &location);

    for (i = 0; i < 10; i++)
    {
        if (location == array [i]) //判断输入的数是不是在数组中
        {       
       flag=i;        //记录位置
            break;
        }
    }
    if(flag==-1)        //值没有改变则意味没有找到
         printf("输入的数不在数组中!\n");
    else
       printf("\n输入的数在是数组中,且是数组中的第%d个位置\n", flag + 1);
}

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-29 12:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-194804-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018561 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved