| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1166 人关注过本帖
标题:一个很简单的程序 编译组建都能通过 可执行老出错 (scanf函数地址&问题已经 ...
只看楼主 加入收藏
sweetrryy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-1
收藏
 问题点数:0 回复次数:9 
一个很简单的程序 编译组建都能通过 可执行老出错 (scanf函数地址&问题已经改正)望知道的大大指点一下
#include <stdio.h>
main()
{
    int num1,num2,num3,sum,pro,sma,lar;
    float avg;
    printf("Input three diffent integers:");
    scanf("%d%d%d",&num1,&num2,&num3);
    if(num1>num2)
    {
        lar=num1;
        if(lar<num3)
    {
        lar=num3;
    }
    }
    else
    {
        sma=num2;
        if(sma>num3)
    {
        sma=num3;
    }
    }
    sum=num1+num2+num3;
    avg=sum/3;
    pro=num1*num2*num3;
    printf("Sum is %d\nAverage is %f\nProduct is %d\nSmallest is %d\nLargest is %d\n",sum,avg,pro,sma,lar);
}
其实这是一道作业题 输入3数 输出最大 最小 和 平均数还有积,可我这样编了后 执行的时候老是提示我有错误,百思不得其解,希望知道的人指点一下 谢谢!
搜索更多相关主题的帖子: scanf 函数 编译 地址 
2008-10-11 22:52
mythhaha
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-3-17
收藏
得分:0 
你的程序我改了一下,现在运行的应该是正确的,就是麻烦点 :
#include <stdio.h>
void main()
{
    int num1,num2,num3,sum,pro,sma,lar;
    float avg;
    printf("Input three diffent integers:\n");
    scanf("%d,%d,%d",&num1,&num2,&num3);
    if(num1>num2)
    {
        lar=num1;
        sma=num2;
        if(lar<num3)
        {
            lar=num3;
        }
        else
        {
            if(num2>num3)sma=num3;
            
        }
    }
    else
    {
        lar=num2;
        sma=num1;
        if(lar<num3)
        {
            lar=num3;
        }
        else
        {
            if(num1>num3)sma=num3;
            
        }
    }
    sum=num1+num2+num3;
    avg=sum/3;
    pro=num1*num2*num3;
    printf("Sum is %d\nAverage is %f\nProduct is %d\nSmallest is %d\nLargest is %d\n",sum,avg,pro,sma,lar);
}
2008-10-11 23:16
冰鲜小鱼
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-2
收藏
得分:0 
交换数值比较用指针吧,不过我后面指针还看得不是很精通,暂时帮不了你了
2008-10-12 00:45
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
根据你的程序,作了如下改动,经测试结果正常:
程序代码:
#include <stdio.h>
main()
{
    int num1,num2,num3,sum,pro,max,min;
    float avg;
    printf("Input three diffent integers:");
    scanf("%d%d%d",&num1,&num2,&num3);
    if(num1>num2)
    {
        max=num1;
        min=num2;
        if(max<num3)
            max=num3;
        if(min>num3)
            min=num3;
    }
    else 
    {
        max=num2;
        min=num1;
        if(max<num3)
           max=num3;
        if(min>num3)
            min=num3;
    }
    sum=num1+num2+num3;
    avg=sum/3;
    pro=num1*num2*num3;
    printf("Sum is %d\nAverage is %f\nProduct is %d\nMAX is %d\nMIN is %d\n",sum,avg,pro,max,min);

}
2008-10-12 01:13
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
收藏
得分:0 
程序代码:
if(num1>num2)
{
    lar=num1;
    if(lar<num3)
    {
        lar=num3;
    }
}
else 
{
    sma=num2;
    if(sma>num3)
    {
        sma=num3;
    }
}

这个求最大,最小值的算法错了.
程序代码:
#include <stdio.h>
int main(void)
{
    int num1,num2,num3,sum,pro,sma,lar;
    float avg;
    printf("Input three diffent integers:");
    scanf("%d%d%d",&num1,&num2,&num3);
    if(num1>num2)
    {
        lar=num1;
        sma=num2;
    }
    else 
    {
        lar=num2;
        sma=num1;
    }
    if(lar<num3)
         lar=num3;
    if(sma>num3)
         sma=num3;

    sum=num1+num2+num3;
    avg=sum/3;
    pro=num1*num2*num3;
    printf("Sum is %d\nAverage is %f\nProduct is %d\nSmallest is %d\nLargest is %d\n",sum,avg,pro,sma,lar);
    return 0;
}


[[it] 本帖最后由 xxwpk007 于 2008-10-18 21:14 编辑 [/it]]
2008-10-12 07:35
z65531295
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-10-3
收藏
得分:0 
楼主的花括号乱用的吧,不是复合语句,单语句你也用。(虽然单句也能用)
但是会看的迷糊。
,估计错在括号上。
2008-10-12 07:49
又是一晚明月夜
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-12
收藏
得分:0 
if else的语句明显错了。

你相信还有真正的爱情吗?
2008-10-12 09:06
hmf66
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-7
收藏
得分:0 
//下面是正确的
#include <stdio.h>
void main()
{
    int num1,num2,num3,sum,pro,sma,lar;
    float avg;
    printf("Input three diffent integers:");
    scanf("%d%d%d",&num1,&num2,&num3);
    if(num1>num2)
     {
        lar=num1;
        if(lar<num3)
       {
    lar=num3;
        sma=num2;
       }
    if(num2>num3)
      sma=num3;
    else
          sma=num2;
     }
    else
     {
        sma=num1;
        if(sma>num3)
       {
    sma=num3;
        lar=num2;
       }
        if(num2<num3)
     lar=num3;
    else
         lar=num2;
     }
    sum=num1+num2+num3;
    avg=sum/3.0;
    pro=num1*num2*num3;
    printf("Sum is %d\nAverage is %f\nProduct is %d\nSmallest is %d\nLargest is %d\n",sum,avg,pro,sma,lar);
}
2008-10-12 13:54
hmf66
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-7
收藏
得分:0 
 注意了,那个avg是平均数为浮点型,如果用整型/整型,那么结果为也为整型,所以要改成:整型/3.0结果才为float
2008-10-12 13:58
sweetrryy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-1
收藏
得分:0 
恩, 我也是刚学习,用英文版教材彻底把我搞晕了~ 今天才有时间上,恩我再回去调试调试,再把正确代码发上来嘛~~谢谢各位了!! 非常感谢!
2008-10-14 00:34
快速回复:一个很简单的程序 编译组建都能通过 可执行老出错 (scanf函数地址&问 ...
数据加载中...
 
   



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

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