| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8818 人关注过本帖
标题:为啥说1.cpp(21) : error C2181: illegal else without matching if
只看楼主 加入收藏
yhgz6685115
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
为啥说1.cpp(21) : error C2181: illegal else without matching if
#include<stdio.h>
void fun(float*x,float*y,float*z)
{
    float k;
    if(*x>*y)
    {
        if(*y<*z)
        {
            if(*z>*x)
                k=*x;*x=*z;*z=*y;*y=k;
            else k=*z;*z=*y;*y=k;
        }
        else *x=*x;*y=*y;*z=*z;
    }
    else
    {
        if(*y>*z)
        {
            if(*x>*z)
                k=*x;*x=*y;*y=k;
            else k=*x;*x=*y;*y=*z;*z=k;
        }
        else k=*x;*x=*z;*z=k;
    }
}
void main()
{
    float a,b,c;
    printf("请输入三个数:\n");
    scanf("%f%f%f\n",&a,&b,&c);
    printf("a=%f b=%f c=%f\n",a,b,c);
    fun(&a,&b,&c);
    printf("a=%f b=%f c=%f\n",a,b,c);
}

--------------------Configuration: c语言 - Win32 Debug--------------------
Compiling...
1.cpp
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(11) : error C2181: illegal else without matching if
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(21) : error C2181: illegal else without matching if
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(s)
为什么说1.cpp(11) : error C2181: illegal else without matching if
1.cpp(21) : error C2181: illegal else without matching if
求教高手,谢谢


搜索更多相关主题的帖子: void without matching include 
2012-03-12 18:32
tangtangt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:146
注 册:2012-1-22
收藏
得分:9 
if(*z>*x)
 k=*x;*x=*z;*z=*y;*y=k;
 else k=*z;*z=*y;*y=k;
这里第二行没加括号,if和else中间隔了好几条条语句,所以编译器认为else是单独的,没有if与之搭配。
你这样写代码的风格不是很好,一般语句即使短,也是一行只写一句的,这样就能比较容易发现这种错误了。
2012-03-12 19:08
yhgz6685115
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-12
收藏
得分:0 
回复 2楼 tangtangt
谢谢
2012-03-12 21:07
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:3 
楼上的楼上正解。
2012-03-12 21:12
yhgz6685115
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-12
收藏
得分:0 
#include<stdio.h>
int fun(int n)
{
    int i,s;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            s=s+i;
    }
    return(s);
}
void main()
{
    int a;
    printf("请输入要求的数:");
    scanf("%d",&a);
    printf("正整数%d的所有因子之和为:%d",a,fun(a));

}
请教上述程序为何会出现以下错误 ?

Compiling...
1.cpp
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2018: unknown character '0xa3'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2018: unknown character '0xa8'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2061: syntax error : identifier 'i'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : warning C4552: '<' : operator has no effect; expected operator with side-effect
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2059: syntax error : ')'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(6) : error C2143: syntax error : missing ';' before '{'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(7) : error C2018: unknown character '0xa3'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(7) : error C2018: unknown character '0xa9'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(8) : error C2146: syntax error : missing ')' before identifier 's'
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(s)


2012-03-12 21:14
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
自己不会看吗?有个地方用中文符号了

总有那身价贱的人给作业贴回复完整的代码
2012-03-12 21:47
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:1 
回复 5楼 yhgz6685115
打汉字的时候输入的符号和英文状态下输入的符号是不一样的,你输入的符号不是英文状态下的符号,所以错误很多,
2012-03-12 22:56
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:4 
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2018: unknown character '0xa3'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(5) : error C2018: unknown character '0xa8'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(7) : error C2018: unknown character '0xa3'
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(7) : error C2018: unknown character '0xa9'
第五行和第七行的括号"(),<"有问题,正如楼上们所说;
C:\Users\Administrator\Desktop\lx\c语言\1.cpp(8) : error C2146: syntax error : missing ')' before identifier 's'
这个错误是因为第七行的括号为为中文输入下的,所以编译器不能识别,变误认为在第八行之前缺少“)”
总结下来基本上都是错在符号的输入上。

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-16 18:58
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:1 
else有几条语句,竟然没{}括起来
2012-03-16 20:01
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:1 
回复 5楼 yhgz6685115
s好像没初值  

编程之路定要走完……
2012-03-17 00:35
快速回复:为啥说1.cpp(21) : error C2181: illegal else without matching if
数据加载中...
 
   



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

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