| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:求大神看看,简单的问题,看看出在哪!!!
只看楼主 加入收藏
轻风无言
Rank: 2
等 级:论坛游民
帖 子:27
专家分:25
注 册:2012-12-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求大神看看,简单的问题,看看出在哪!!!
/*
    输入产品号,产品数量,计算总价
*/

#include<stdio.h>
#include <string.h>
int main( void )
{   
    // 初始化
    int i;
    int s;        //产品号
    int q;        // 产品数量
    double count[6] = {0};
    double total = 0;

    while( 1 ){
        printf( "please enter the number: \n" );
        scanf( "%d", &s );
        if( s == -1 )    break;
        scanf( "%d", &q );
        // 不同的产品好,计算不同的总价
        switch( s ){
            case 1 : count[1] += q * 2.98;
                break;
            case 2 : count[2] += q * 4.50;
                break;
            case 3 : count[3] += q * 9.98;
                break;
            case 4 : count[4] += q * 4.49;
                break;
            case 5 : count[5] += q * 6.87;
                break;
            case ' ':
            case '\t':
            case '\n':
                break;
            default: printf( "the number is wrong!!\n" );
                break;
        }// end switch
        
    }// end while

    //计算总价
        for( i = 1; i <= 6; i++ ){
            total += count[i];
        }// end for_i
        printf( "the totla money is %d!!!\n", total );
   
    return 0;
}// end main function
// 打个比方啊,本来我输入1,2,-1,按我的思路是输出5.96的,怎么老是输出2啊,
搜索更多相关主题的帖子: 产品 include please number 
2012-12-19 01:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
printf( "the totla money is %d!!!\n", total );
用%d去输出浮点型数据,这2天看见好多次了

DO IT YOURSELF !
2012-12-19 08:32
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:10 
还有个问题,那就是数组越界        for( i = 1; i <= 6; i++ )这里

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-19 08:41
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include<stdio.h>
#include <string.h>

int main( void )
{   
    // 初始化
    int i = 0;
    int s = 0;        //产品号
    int q = 0;        // 产品数量
    double count[6] = {0};
    double total = 0;

    while( 1 ){

        printf( "please enter a number: \n" );
        scanf( "%d", &s );
        if( s == -1 )   
            break;
        scanf( "%d", &q );
        
        switch( s ){
            case 1 :
                count[1] += q * 2.98;
                break;
            case 2 :
                count[2] += q * 4.50;
                break;
            case 3 :
                count[3] += q * 9.98;
                break;
            case 4 :
                count[4] += q * 4.49;
                break;
            case 5 :
                count[5] += q * 6.87;
                break;
            case ' ':
            case '\t':
            case '\n':
                break;
            default:
                printf( "the number is wrong!!\n" );
                break;
        }
        
    }

   
        for( i = 0; i < 6; i++ ){
            total += count[i];
        }
        printf( "the totla money is %.3f!!!\n", total );
   
    return 0;
}
---------------
没看懂你的程序什么意思
错误不少啊
2012-12-19 09:13
轻风无言
Rank: 2
等 级:论坛游民
帖 子:27
专家分:25
注 册:2012-12-19
收藏
得分:0 
回复 3楼 yaobao
看见了,谢谢你了
2012-12-19 10:32
轻风无言
Rank: 2
等 级:论坛游民
帖 子:27
专家分:25
注 册:2012-12-19
收藏
得分:0 
回复 4楼 daniel_
我是在做本书后的习题,所以注释比较少,可是我有很多细节错误,逻辑错误,还望多多关注,谢谢
2012-12-19 10:34
轻风无言
Rank: 2
等 级:论坛游民
帖 子:27
专家分:25
注 册:2012-12-19
收藏
得分:0 
回复 2楼 wp231957
还真是细节决定成败啊,哎,这错误。谢谢提醒了
2012-12-19 10:35
琦玉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 楼主 轻风无言
//求大神看看,简单的问题,看看出在哪!!!
/*
输入产品号,产品数量,计算总价
*/

#include<stdio.h>
#include <string.h>
int main( void )
{
// 初始化
int i;
int s; //产品号
int q; // 产品数量
float count[6] = {0};
float total = 0;

while( 1 ){
printf( "please enter the number: \n" );
scanf( "%d", &s );
if( s == -1 ) break;
scanf( "%d", &q );
// 不同的产品好,计算不同的总价
switch( s ){
case 1 : count[1] += q * 2.98;
break;
case 2 : count[2] += q * 4.50;
break;
case 3 : count[3] += q * 9.98;
break;
case 4 : count[4] += q * 4.49;
break;
case 5 : count[5] += q * 6.87;
break;
case ' ':
case '\t':
case '\n':
break;
default: printf( "the number is wrong!!\n" );
break;
}// end switch

}// end while

//计算总价
for( i = 1; i <= 6; i++ ){
total += count[i];
}// end for_i
printf( "the totla money is %.2f !!!\n", total );

return 0;
}// end main function
// 打个比方啊,本来我输入1,2,-1,按我的思路是输出5.96的,怎么老是输出2啊,
2012-12-19 12:34
快速回复:求大神看看,简单的问题,看看出在哪!!!
数据加载中...
 
   



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

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