| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:[求助]数据输入判断问题!
只看楼主 加入收藏
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
结帖率:79.31%
收藏
已结贴  问题点数:20 回复次数:11 
[求助]数据输入判断问题!
#include "stdafx.h"

double p=3.1415926,r1,r2,h,t;
double vv(double r1,double r2,double h);

void main()
{
    char a,b,c;
int r11,r22,hh;
k:
    printf("请输入内径:");
    scanf("%c",&a);
    r11=a-'0';
    printf("请输入外径:");
    scanf("%c",&b);
    r22=b-'0';
    if(r22<r11 || r11<='0'||r22<='0'||r11>='9'||r22>='9')
//if里面的是想判断,如果输入的不是数字而是其他字符就提示输入错误
//或者是输入“内径”大于“外径”的时候也报错!
{
printf("数据输入错误\n");
    goto k;
    }
    else
    printf("请输入高:");
    scanf("%c",&c);
       hh=c-'0';   
    t=vv(r2,r1,h);
    printf("体积为:%lf\n",t);
}

double vv(double r2,double r1,double h)
{
t=p*(r2*r2-r1*r1)*h;
return t;
}
搜索更多相关主题的帖子: 数据 判断 输入 
2010-10-23 16:00
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-23 16:10
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
那浮点型 怎么处理

输入的又不光是整数
2010-10-23 16:18
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
收藏
得分:0 
k:
    printf("请输入内径:");
    scanf("%c",&a);
    getchar();            //清除缓存区的回车
    r11=a-'0';
    printf("请输入外径:");
    scanf("%c",&b);
    r22=b-'0';
    if(r22<r11 || r11<='0'||r22<='0'||r11>='9'||r22>='9')  //if(r22<r11 || r11<=0||r22<=0||r11>=9||r22>=9)   
2010-10-23 16:49
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
还是不行呀
你把程序自己运行看!

谢谢
2010-10-23 17:18
MrBluer
Rank: 4
等 级:业余侠客
威 望:1
帖 子:120
专家分:263
注 册:2010-10-23
收藏
得分:0 
真的好麻烦啊,如果输入浮点型那几乎不可能判断出是不是输入了字符。像2,56这样的数字。
如果输入字符再判断是容易了,也能让其和浮点数进行运算,得到的也是浮点数,没问题。可内径和外径就只有整数了……
2010-10-23 18:52
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
也先用字符串
然后放进数组
再进行判断
在进行类型转化

可以怎么写代码

西诶诶
2010-10-24 14:40
tzp876301129
Rank: 2
等 级:论坛游民
帖 子:29
专家分:31
注 册:2010-5-16
收藏
得分:0 
哎!无能为力
2010-10-24 19:40
自由战士89
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:387
注 册:2010-9-2
收藏
得分:0 
#include <stdio.h>

double p=3.1415926,r1,r2,h,t;
double vv(double r1,double r2,double h);

void main()
{
   
    double r11,r22,hh;
    while(1)
    {
        printf("请输入内径:");
        scanf("%lf",&r11);
         if(getchar()!='\n')             //如有字符存入getchar,如无字符存回车,下同
            {
                printf("数据输入错误\n");
                continue;
            }


        printf("请输入外径:");
        scanf("%lf",&r22);
        if(getchar()!='\n'||(r22<r11))              //加上内外径比较
            {
                printf("数据输入错误\n");
                continue;
            }


        printf("请输入高:");
        scanf("%lf",&hh);
        if(getchar()!='\n')
            {
                printf("数据输入错误\n");
                continue;
            }
        
        else
            break;
    }
   
         
    t=vv(r22,r11,hh);
    printf("体积为:%lf\n",t);
}

double vv(double r2,double r1,double h)
{
t=p*(r2*r2-r1*r1)*h;
return t;
}
好像不太理想
 
2010-10-24 20:46
xiaxun
Rank: 1
等 级:新手上路
帖 子:207
专家分:7
注 册:2009-8-30
收藏
得分:0 
以下是引用自由战士89在2010-10-24 20:46:03的发言:

#include

double p=3.1415926,r1,r2,h,t;
double vv(double r1,double r2,double h);

void main()
{
   
    double r11,r22,hh;
    while(1)
    {
        printf("请输入内径:");
        scanf("%lf",&r11);
         if(getchar()!='\n')             //如有字符存入getchar,如无字符存回车,下同
            {
                printf("数据输入错误\n");
                continue;
            }


        printf("请输入外径:");
        scanf("%lf",&r22);
        if(getchar()!='\n'||(r22
你没有进行输入的比较丫

万一输入的是字母qwert或者是其他字符,比如:~!#!@#@##<>?":{}+_(\\

你要进行判断丫!!

还有万一输入中间有空格怎么办,比如:9 9 ,6 6 ,8. 9,
又该怎么办!

谢谢
2010-10-25 09:15
快速回复:[求助]数据输入判断问题!
数据加载中...
 
   



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

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