| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1029 人关注过本帖
标题:c 语言遇到的问题
只看楼主 加入收藏
zhuwei168
Rank: 1
来 自:东软信息学院
等 级:新手上路
帖 子:180
专家分:0
注 册:2008-2-13
收藏
 问题点数:0 回复次数:8 
c 语言遇到的问题
我照书上写得这段程序可是编出来结果却很不同当输入》=90时是没有问题的但是输入《90的话就有问题了,大家可以试试
我的C编程的是Microsoft Visual C++ 6.0
main()
{
    int scro1=0;
    int scro2=0;
    printf("Please enter scro1=?");
    scanf("%d",&scro1);
    if(scro1>=90)scro2='A';
    else if(scro1>=80 & & scro1<90)scro2='B';
        else if(scro1>=70 & & scro1<80)scro2='C';
            else if(scro1>=60 & & scro1<70)scro2='D';
            else scro2='E';
            printf("it is %c",scro2);
}
搜索更多相关主题的帖子: 语言 
2008-02-13 21:41
有敌手
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2008-2-12
收藏
得分:0 
我在想LZ定义时为什么不把
scro2定义为CHAR。。。?
2008-02-13 21:45
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*再试试*/
#include<stdio.h>
main()
{
    int scro1=0;
    int scro2=0;
    printf("Please enter scro1=?");
    scanf("%d",&scro1);
    if(scro1>=90)
        scro2='A';
    else if(scro1>=80&&scro1<90)
        scro2='B';
    else if(scro1>=70&&scro1<80)
         scro2='C';
    else if(scro1>=60&&scro1<70)
         scro2='D';
    else
         scro2='E';
    printf("it is %c",scro2);
}
2008-02-13 22:06
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
& & 当成取址符(也就是指针) &&
2008-02-13 22:08
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
&& 不能分開~估計是印刷錯誤

何況這裡沒有必要使用邏輯與。
#include<stdio.h>
int main()
{
 int scro1=0;
 char scro2=0;
 printf("Please enter scro1=?");
 scanf("%d",&scro1);
 if(scro1>=90)
  scro2='A';
 else if(scro1>=80)
  scro2='B';
 else if(scro1>=70)
   scro2='C';
 else if(scro1>=60)
   scro2='D';
 else
   scro2='E';
 printf("it is %c",scro2);
 return 0;
}
if else 保證他們是不同的邏輯分支~
看來你這本書質量不佳哦

[[it] 本帖最后由 nobush 于 2008-2-13 19:14 编辑 [/it]]
2008-02-14 00:59
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
同意楼上的观点。。。。
2008-02-14 08:27
zhuwei168
Rank: 1
来 自:东软信息学院
等 级:新手上路
帖 子:180
专家分:0
注 册:2008-2-13
收藏
得分:0 
先回复第一楼的
我把int scro2改成了char 还是没有用
至于那个&&的好像是我打错了吧
怪不得那段程序老是没有执行就直接跳到else scro2='E'去了
谢谢大家的建议
我现在都在电脑上去试试
看看到底会不会得到正确结果
2008-02-14 10:02
zhuwei168
Rank: 1
来 自:东软信息学院
等 级:新手上路
帖 子:180
专家分:0
注 册:2008-2-13
收藏
得分:0 
谢谢二楼的
出现的错误是我把那个&&给分开造成的
还有我没有打上#include<stdio>
所以也造成了好多个警告。
谢谢大家了
2008-02-14 10:06
boralin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-2-15
收藏
得分:0 
规范的必要
1、我看到这里很多的代码,在if里都不带大括号的。我看是教学书误导了大家!
教学书的作者为了显示他是牛人,所以不加大括号,我们作为初学者要养成良好的习惯。我的老师说“就算判断语句体只有一句,也要带大括号”。

2、变量scro2应该声明为 char数据类型 的,编译没出问题是因为scro2='A''B''C''D''E'的时候,单字符'A''B''C''D''E'被自动类型转换为ASC码值了,后面在语句输出的时候,int数据类型的变量scro2里的整数又自动转换为单字符给 %c 显示了。
   就算这里没事,以后难保不出问题。至少考试里这样是要扣分的饿!
2008-02-15 05:10
快速回复:c 语言遇到的问题
数据加载中...
 
   



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

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