注册 登录
编程论坛 C++教室

新手的问题

xiaoyaox45y 发布于 2008-03-07 11:10, 1292 次点击
要求讲23,3,4,5,89,10输入到一个数组a中,定义一个变量X,输入X的值,查找X在数组中的位置,若不在其中,则返回0
我写的
#include<iostream.h>
void main()
{
    int a[5]={23,3,4,5,89,10};
    int i=0,x;
    cin>>x;
    for(i=0;i<5;i++)

    {
        if(x=a[i])
            cout<<i;
        else
            cout<<0;
    }
}
不知道错在哪里,大家指点下
还有too many initializers是什么错误?该怎么解决呢?
小弟先谢过大虾些了
11 回复
#2
lonmaor2008-03-07 11:18
int a[5]={23,3,4,5,89,10};
int[5]用了6个int初始化。
#3
eagleboycn2008-03-07 11:46
数组应该定义为int a[6]
if语句里面条件应该用'=='
#4
孤魂居士2008-03-07 12:04
LS  正解
#5
blueboy820062008-03-07 12:18
顶三楼^
#6
xiaoyaox45y2008-03-07 12:33
谢谢大家,明白咯![bc08]
#7
lyc53055622008-03-09 13:20
那个cout<<"0";不是这样吗?
#8
lyc53055622008-03-09 13:32
我改了下程序,可能这样会更好些,感觉你那程序还没达到你的要求~!
#include<iostream.h>
void main()
{
    int a[6]={23,3,4,5,89,10};
    int i=0,x;
    cin>>x;
    for(i=0;i<6;i++)

    {
        if(x==a[i])
            cout<<i+1<<endl;
        continue;
        cout<<"0"<<endl;
    }
}
#9
Waiting1592008-03-09 14:00
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int a[6] = {23, 3, 4, 5, 89, 10};
    int i = 0, x;
    cout << "输入要找的数:" << endl;
    cin >> x;
   
    for(i=0;i<6;i++)
    {
        if(x==a[i]){
            cout << x << "是第" << i << "个数。" << endl;
            
            system("pause");
            return 0;
        }
    }
   
    cout << x <<"不在数组中!" << endl;
    system("pause");
    return 0;
}
#10
bestak2008-03-09 17:38
呵呵 我想了个取巧的方法,大家看看。
#include"iostream.h"
void main()
{
    int a[6]={23,3,4,5,89,10};
    int i,x,y;
    cin>>x;
    y=x;
    for(i=0;i<6;i++)
    {
        if(x==a[i])
        {
            y=0;
            cout<<a[i]<<endl;
            break;
        }    
    }
    if(x==y)
        cout<<"0"<<endl;

}
#11
okenny2008-03-10 08:49
不明白LS用意何在
#12
wfx_best2008-03-10 13:59
回答楼主:
我不知道你说的位置包不包括 0, 一般我们是把0 算在里面的,如果是这样的话查找不成功就要返回 -1 而不是返回 0. 而且最好用函数来实现这个独立的功能,不要什么都在主函数里做. 下面是我写的一个例子,你可以参考一下:
#include<iostream.h>
int main()
{
    int f(int x,int n,int *a);  //查找函数,如果x 在a[]中,返回它的位置,否则返回 -1
    int a[6]={23,3,4,5,89,10};
    int x;
    cin>>x;  
    cout<<f(x,6,a)<<endl;
    return 0;
}

int f(int x,int n,int *a)
{
    for(int i=0;i<n;i++)
    {
        if(x==a[i])
            return i;
    }
    return -1;
}
1