注册 登录
编程论坛 数据结构与算法

顺序表中找相同元素,求指导????

ouyang001 发布于 2013-05-06 10:22, 568 次点击
#include<stdlib.h>
#include<stdio.h>
#define size 5
typedef struct lnode{
    int data[size];
    int len;
}lnode;

void createlist(lnode &l)
{

    printf("please input number you want:\n");
    for(int i=0;i<l.len;i++)
        scanf("%2d",&l.data[i]);
    for(int j=0;j<l.len;j++)
        printf("the number is:\n",l.data[j]);

}
int account(lnode l,int x)
{
    int m=0;
    for(int i=0;i<l.len;i++)
    {    if(l.data[i]==x)
    m++;}
        return m;
}
void main()
{
    lnode l;
    int y,t;
    printf("please input y:\n");
    scanf("%d",&y);
    createlist(l);
    t=account(l,y);
    printf("y元素的个数为%d个",t);
}
1 回复
#2
邓士林2013-05-06 14:11
主要问题就是这个函数:
void createlist(lnode &l)
{

    printf("please input number you want:\n");
    for(int i=0;i<l.len;i++)
        scanf("%2d",&l.data[i]);
    for(int j=0;j<l.len;j++)
        printf("the number is:\n",l.data[j]);

}
其没有输入或指定线性表的长度l。len没有值,怎么进行循环呢?其二: printf("the number is:\n",l.data[j]);这个输出没有%d怎么能输出来呢?修改如下:
void createlist(lnode &l)
{

    printf("please input numbers you want:\n");
    scanf("%d",&l.len);
    for(int i=0;i<l.len;i++)
        scanf("%2d",&l.data[i]);
    for(int j=0;j<l.len;j++)
        printf("the number is:%d\n",l.data[j]);

}
1