| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9018 人关注过本帖, 1 人收藏
标题:请哪位大侠帮忙看一下,为什么我的程序老是提示error C2106: '=' : left op ...
只看楼主 加入收藏
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 10楼 m21wo
嗯,谢谢你~            我对我上面的程序象下面解释不知道有没有问题~


#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10

int sort(char (*p)[5])//可能是因为行地址和首地址是同一个值,所以就不能改变
{
    int i;
    char (*p1)[5];

    p1 = NULL;

    for (i=0; i<3; i++)
    {   
        if (strcmp(p[i],p[i+1])>0)
        {
            p1 = *p[i+1];  //改变首个字符,后面的没有变
            *p[i+1] = *p[i];
            *p[i] = p1;
        /*
            p1 = *p;   // 单个元素值赋给了一个指向数组的指针变量,这是错误的;
            p = *(p+i);
            (p+i) = *p1;
        */
        }
                    
    }
    return 0;
}


int main(void)
{
    int i;
    char a[6][5];
    printf("please input five string\n");
    for (i=0; i<6; i++)
    {
        scanf("%s",a[i]);
    }
   
    sort(a);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;

}


我这样解释我这程序对不对呢?



[ 本帖最后由 xiaodeo 于 2010-10-25 23:18 编辑 ]
2010-10-25 23:17
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
莫搞笑啊!你这能运行出来吗????

If You Want Something, Go Get It, Period.
2010-10-26 19:06
xiaodeo
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-10-25
收藏
得分:0 
回复 12楼 m21wo
上面的是不能,下面的就可以。上面的程序我只是说,我这样解释那些语句对不对


#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10


//利用指针数组来处理字符串比较

int sort(char *p[])
{
    int i, j;
    char *p1;

//利用冒泡法排列数组

    for (i=0; i<4; i++)
    {    for(j=0; j<4-i; j++)
        {
            if (strcmp(*(p+j),*(p+j+1))>0)
            {
                p1 = *(p+j);
                *(p+j) = *(p+j+1);
                *(p+j+1) = p1;
            }
        }            
    }
    return 0;
}


int main(void)
{
    int i;
    char a[5][5];
    char *p[5];
    printf("please input five string\n");
    for (i=0; i<5; i++)
    {
        p[i] = a[i];
    }
    for (i=0; i<5; i++)
    {
        scanf("%s",p[i]);
    }
   
    sort(p);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",p[i]);
    }

    return 0;

}

2010-10-26 23:29
fengyuejin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-3-26
收藏
得分:0 
#include<stdio.h>
#include<string.h>
//#include<math.h>
//#define  uint unsigned int
//#define N 10

int sort(char (*p)[5])
{
    int i;
    char p1[5];

//    p1 = NULL;

    for (i=0; i<3; i++)
    {   
        if (strcmp(*(p+i),*(p+i+1))>0)
        {
            strcpy(p1,*(p+i));
            strcpy(*(p+i), *(p+i+1));
            strcpy(*(p+i+i) , p1);
        }
                    
    }
    return 0;
}


int main(void)
{
    int i;
    char a[5][5];
    printf("please input five string\n");
    for (i=0; i<5; i++)
    {
        scanf("%s",a[i]);
    }
   
    sort(a);
   
    for (i=0; i<5; i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;

}

数组只能在定义时初始化

2011-03-26 21:33
快速回复:请哪位大侠帮忙看一下,为什么我的程序老是提示error C2106: '=' : le ...
数据加载中...
 
   



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

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