| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2829 人关注过本帖, 1 人收藏
标题:C语言中一些基础知识点 求教
只看楼主 加入收藏
wdy1999
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-10-23
收藏
得分:0 
谢谢啦
2016-10-23 18:02
wdy1999
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-10-23
收藏
得分:0 
谢谢各位
2016-10-23 18:30
wdy1999
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-10-23
收藏
得分:0 
怎样保留小数啊,像5/2=2.5而不是2。求各位大神解答
2016-10-23 18:32
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
强制转换(double)5/2=2.5, 或者1.0*5/2=2.5

早知做人那么辛苦!  当初不应该下凡
2016-10-23 18:52
wdy1999
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-10-23
收藏
得分:0 
5-11 统计字符   (15分)
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入格式:

输入为10个字符。最后一个回车表示输入结束,不算在内。

输出格式:

在一行内按照

letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。

输入样例:

aZ &
09 Az
输出样例:

letter = 4, blank = 3, digit = 2, other = 1

#include<stdio.h>
int main(void)
{
    int letter,blank,digit,other;
    char n;
    int i;
    digit=letter=blank=other=0;
    scanf("%d",&i);
    scanf("%d",&i);
        for(i=1;i<=10;i++){
    n=getchar();
    if ((n>='a'&&n<='z')||(n>='A'&&n<='Z'))
        letter++;
    else if(n>='0'&&n<='9')
        digit++;
    else if(n=' '&&n=='\n')
        blank++;
    else
      other++;
    }
    printf("letter=%d,digit=%d,blank=%d,other=%d",letter,digit,blank,other);
    return 0;
}
哪里出错了始终得不到other的正确个数
2016-10-23 21:34
feitianshu
Rank: 2
等 级:论坛游民
帖 子:14
专家分:31
注 册:2016-10-18
收藏
得分:0 
回复 12楼 wdy1999
一个简单的程序回答你的问题。
#include <stdio.h>
int main()
{
    float n;
    scanf("%f",&n);
    n=n/2;
  printf("%1.1f",n);
  return 0;
}
2016-10-23 22:26
feitianshu
Rank: 2
等 级:论坛游民
帖 子:14
专家分:31
注 册:2016-10-18
收藏
得分:0 
回复 15楼 wdy1999

#include<stdio.h>
int main(void)
{
    int letter,blank,digit,other;
    char n;
    //int i;
    digit=letter=blank=other=0;
   // scanf("%d",&i);
    //scanf("%d",&i);

        while( (n=getchar())!='#')
         if ((n>='a'&&n<='z')||(n>='A'&&n<='Z'))
            letter++;
            else if(n>=48&&n<=57)
                 digit++;
                   else if(n==' '||n=='\n')
                         blank++;
                        else
                          other++;
    printf("letter=%d,digit=%d,blank=%d,other=%d",letter,digit,blank,other);
    return 0;
}
2016-10-23 23:00
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
回复 15楼 wdy1999
if ((n>='a'&&n<='z')||(n>='A'&&n<='Z'))
         letter++;
     else if(n>='0'&&n<='9')
         digit++;
     else if(n=' '&&n=='\n') //此处n=' '漏了一个等号, 而且&&错了.改为else if(n==' '||n=='\n')
         blank++;
     else
       other++;
     }

上面scanf("%d",&i)输入两次不需要, 也不需要输入i的值
为什么不自己发帖,要是楼主结贴,你的问题很可能被忽略

[此贴子已经被作者于2016-10-23 23:35编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-10-23 23:32
快速回复:C语言中一些基础知识点 求教
数据加载中...
 
   



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

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