| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:这是什么原因??
只看楼主 加入收藏
三岩
Rank: 1
等 级:新手上路
帖 子:20
专家分:6
注 册:2010-7-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
这是什么原因??
错在哪里??

#include<stdio.h>
#include<string.h>
void main()
{
    char p1[10],p2[10],p3[10],*temp;
gets(p1);
gets(p2);
gets(p3);
if(strcmp(p1,p2)>0)  
{ temp=p1;
  p1=p2;
  p2=temp;
}
if(strcmp(p1,p3)>0)
{temp=p1;
p1=p3;
p3=temp;
}
if(strcmp(p2,p3)>0)  
{temp=p2;
p2=p3;
p3=temp;
}
printf("%s\n%s\n%s\n",p1,p2,p3);
}

E:\CC\符.c(11) : error C2106: '=' : left operand must be l-value
E:\CC\符.c(12) : error C2106: '=' : left operand must be l-value
E:\CC\符.c(16) : error C2106: '=' : left operand must be l-value
E:\CC\符.c(17) : error C2106: '=' : left operand must be l-value
E:\CC\符.c(21) : error C2106: '=' : left operand must be l-value
E:\CC\符.c(22) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.

符.obj - 6 error(s), 0 warning(s)

搜索更多相关主题的帖子: 原因 void include 
2010-08-07 23:29
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:5 
数组名是不能赋值的,要复制字符串得用strcpy

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-08-07 23:37
kacher
Rank: 2
等 级:论坛游民
帖 子:30
专家分:52
注 册:2009-9-26
收藏
得分:4 
数组是不能直接赋值的,要用函数strcpy!
2010-08-08 06:46
苗伊
该用户已被删除
收藏
得分:4 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-08 10:43
mujiaha
Rank: 2
等 级:论坛游民
帖 子:37
专家分:65
注 册:2010-7-27
收藏
得分:4 
p1=p3;
p3=temp;这里的p1,p3代表数组首元素首地址。
2010-08-08 10:44
狮子。
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:64
专家分:58
注 册:2010-8-1
收藏
得分:3 
以下是引用苗伊在2010-8-8 10:43:47的发言:

#include
#include
void main()
{
    char p1[10],p2[10],p3[10],temp[10];
    gets(p1);
    gets(p2);
    gets(p3);
    if(strcmp(p1,p2)>0)  
    {
        temp=p1;
        p1=p2;
        p2=temp;
    }
    if(strcmp(p1,p3)>0)
    {
        temp=p1;
        p1=p3;
        p3=temp;
    }
    if(strcmp(p2,p3)>0)  
    {
        temp=p2;
        p2=p3;
        p3=temp;
    }
    printf("%s\n%s\n%s\n",p1,p2,p3);
}
是错误的,我试过了.
那怎么改呢......?

当你小有成绩,打算沾沾自喜时。不知道有多少比你强的人正在埋头奋进!
2010-08-08 11:12
三岩
Rank: 1
等 级:新手上路
帖 子:20
专家分:6
注 册:2010-7-19
收藏
得分:0 
哦,对,数组名是常量!谢谢各位了!
应该这样写!

#include<stdio.h>
#include<string.h>
void main()
{
    char p1[10],p2[10],p3[10],*temp;
    char *i=p1,*j=p2,*k=p3;
gets(p1);
gets(p2);
gets(p3);
if(strcmp(p1,p2)>0)  
{ temp=i;
  i=j;
  j=temp;
}
if(strcmp(p1,p3)>0)
{temp=i;
i=k;
k=temp;
}
if(strcmp(p2,p3)>0)  
{temp=j;
j=k;
k=temp;
}
printf("%s\n%s\n%s\n",i,j,k);
}
2010-08-08 11:24
狮子。
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:64
专家分:58
注 册:2010-8-1
收藏
得分:0 
恩恩恩,想起来了数组名是常量,常量就不能再被复制~!

当你小有成绩,打算沾沾自喜时。不知道有多少比你强的人正在埋头奋进!
2010-08-08 11:30
快速回复:这是什么原因??
数据加载中...
 
   



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

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