标题:关于多个函数定义
只看楼主
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
结帖率:50%
 问题点数:0 回复次数:30 
关于多个函数定义
程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void pluse(void);
void minus(void);
void multiply(void);
void divide(void);
char get_choice(void);
char get_first(void);
int main()
{
    int choice;
    void pluse(void);
    void minus(void);
    void multiply(void);
    void divide(void);
    while((choice=get_choice())!='q')
    {
     switch(choice)
     {
      case 'a':pluse();
             break;
      case 'b':minus();
             break;
      case 'c':multiply();
             break;
      case 'd':divide();
             break;
      default:printf("擦亮你的眼,只有a,b,c,d选项,按q退出");
              break;
     }
    }         
    printf("欢迎使用凛冬计算器\n");
    printf("如果好就推荐给别人");
                           
    system("pause");
    return 0;
}

    void pluse(void)
    {
     float plusen;
     float pluse1;
     float pluse2;
     printf("请输入第一个数");
     scanf("%f",&pluse1);
     printf("请输入第二个数");
     scanf("%f",&pluse2);
     plusen=pluse1+pluse2;
     printf("%f+%f=%f",pluse1,pluse2,plusen);
    }
   
    void minus(void)
    {
     float minusn;
     float minus1;
     float minus2;
     printf("请输入第一个数");
     scanf("%f",&minus1);
     printf("请输入第一个数");
     scanf("%f",&minus2);
     minusn=minus1-minus2;
     printf("%f-%f=%f",minus1,minus2,minusn);
    }
   
    void multiply(void)
    {
     float multiplyn;
     float multiply1;
     float multiply2;
     printf("请输入第一个数");
     scanf("%f",&multiply1);
     printf("请输入第一个数");
     scanf("%f",&multiply2);
     multiplyn=multiply1+multiply2;
     printf("%fX%f=%f",multiply1,multiply2,multiplyn);
    }
   
    void dinide(void)
    {
     float dividen;
     float divide1;
     float divide2;
     printf("请输入第一个数");
     scanf("%f",&divide1);
     printf("请输入第一个数");
     scanf("%f",&divide2);
     while(divide2=0)
     {
      printf("你的数学老师要哭了,你尽然让分母为0");
      scanf("%f",&divide2);
     }
     dividen=divide1/divide2;
     printf("%f/%f=%f",divide1,divide2,dividen);
    }  



这个程序是用来用一个菜单来选择加减乘除的运算
还请大神帮忙看看哪里错了
编辑器运行不了
搜索更多相关主题的帖子: choice include 
2015-06-05 18:27
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
得分:0 
补充一下
void pluse(void);//加
void minus(void);//减
void multiply(void);//乘
void divide(void);//除


2015-06-05 18:29
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
函数声明一次就行了

一片落叶掉进了回忆的流年。
2015-06-05 18:44
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
while((choice=get_choice())!='q')这个应该是getchar()吧有get_choice()这个函数吗,我没用过

一片落叶掉进了回忆的流年。
2015-06-05 18:45
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
得分:0 
改了,但好像还是不行
2015-06-05 18:55
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
得分:0 
我的编辑器只是说编译失败,并没说哪里错了
2015-06-05 18:58
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void pluse(void);
void minus(void);
void multiply(void);
void divide(void);
//char get_choice(void);没有定义
//char get_first(void);
int main()
{
    int choice;
    while((choice=getchar())!='q')
    {
     switch(choice)
     {
      case 'a':pluse();
             break;
      case 'b':minus();
             break;
      case 'c':multiply();
             break;
      case 'd':divide();
             break;
      default:printf("擦亮你的眼,只有a,b,c,d选项,按q退出");
              break;
     }
    }          
    printf("欢迎使用凛冬计算器\n");
    printf("如果好就推荐给别人");
                           
    system("pause");
    return 0;
}

    void pluse(void)
    {
     float plusen;
     float pluse1;
     float pluse2;
     printf("请输入第一个数");
     scanf("%f",&pluse1);
     printf("请输入第二个数");
     scanf("%f",&pluse2);
     plusen=pluse1+pluse2;
     printf("%f+%f=%f",pluse1,pluse2,plusen);
    } 
    
    void minus(void)
    {
     float minusn;
     float minus1;
     float minus2;
     printf("请输入第一个数");
     scanf("%f",&minus1);
     printf("请输入第一个数");
     scanf("%f",&minus2);
     minusn=minus1-minus2;
     printf("%f-%f=%f",minus1,minus2,minusn);
    } 
    
    void multiply(void)
    {
     float multiplyn;
     float multiply1;
     float multiply2;
     printf("请输入第一个数");
     scanf("%f",&multiply1);
     printf("请输入第一个数");
     scanf("%f",&multiply2);
     multiplyn=multiply1+multiply2;
     printf("%fX%f=%f",multiply1,multiply2,multiplyn);
    }
    
    void divide(void) //函数名不一致
    {
     float dividen;
     float divide1;
     float divide2;
     printf("请输入第一个数");
     scanf("%f",&divide1);
     printf("请输入第一个数");
     scanf("%f",&divide2);
     while(divide2=0)
     {
      printf("你的数学老师要哭了,你尽然让分母为0");
      scanf("%f",&divide2);
     } 
     dividen=divide1/divide2;
     printf("%f/%f=%f",divide1,divide2,dividen);
    }  

一片落叶掉进了回忆的流年。
2015-06-05 19:03
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
剩下的靠自己了
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void pluse(void);
void minus(void);
void multiply(void);
void divide(void);  
int main()
{
    char choice; 
    while((choice=getchar())!='q')
    {
     switch(choice)
     {
      case 'a':pluse();
             break;
      case 'b':minus();
             break;
      case 'c':multiply();
             break;
      case 'd':divide();
             break;
      default:printf("擦亮你的眼,只有a,b,c,d选项,按q退出");
              break;
     }
    }          
    printf("欢迎使用凛冬计算器\n");
    printf("如果好就推荐给别人");
                           
    system("pause");
    return 0;
}

    void pluse(void)
    {
     float plusen;
     float pluse1;
     float pluse2;
     printf("请输入第一个数");
     scanf("%f",&pluse1);
     printf("请输入第二个数");
     scanf("%f",&pluse2);
     plusen=pluse1+pluse2;
     printf("%f+%f=%f",pluse1,pluse2,plusen);
    } 
    
    void minus(void)
    {
     float minusn;
     float minus1;
     float minus2;
     printf("请输入第一个数");
     scanf("%f",&minus1);
     printf("请输入第一个数");
     scanf("%f",&minus2);
     minusn=minus1-minus2;
     printf("%f-%f=%f",minus1,minus2,minusn);
    } 
    
    void multiply(void)
    {
     float multiplyn;
     float multiply1;
     float multiply2;
     printf("请输入第一个数");
     scanf("%f",&multiply1);
     printf("请输入第一个数");
     scanf("%f",&multiply2);
     multiplyn=multiply1*multiply2;
     printf("%fX%f=%f",multiply1,multiply2,multiplyn);
    }
    
    void divide(void)
    {
     float dividen;
     float divide1;
     float divide2;
     printf("请输入第一个数");
     scanf("%f",&divide1);
     printf("请输入第一个数");
     scanf("%f",&divide2);
     while(divide2=0)
     {
      printf("你的数学老师要哭了,你尽然让分母为0");
      scanf("%f",&divide2);
     } 
     dividen=divide1/divide2;
     printf("%f/%f=%f",divide1,divide2,dividen);
    }  

剑栈风樯各苦辛,别时冰雪到时春
2015-06-05 19:06
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:0 
哎!小白伤不起,还有好几个BUG没找出来
BUG_1:明明过虑掉了'\n'可还是会出来,多来来的那个会是什么符号?
BUG_2:除法没考虑到0

程序代码:
#include<stdio.h>
char get_choice(void);
char get_first(void);
int get_int(void);
void pluse(void);
void minus(void);
void multiply(void);
void divide(void);

int main(void)
{
    int choice;
   

    while((choice=get_choice()) != 'q' )
    {
        switch(choice)
        {
            case 'a':
                pluse();
                break;
            case 'b':
                minus();
                break;
            case 'c':
                divide();
                break;
            case 'd':
                divide();
        }
    }
}

char get_choice(void)
{
    int ch;
    printf("*****************************\n");
    printf("a. 加法        b. 减法\n");
    printf("c. 乘法        d. 除法\n");
    printf("q. 退出\n");
    printf("*****************************\n");
    ch=get_first();
    while((ch<'a' || ch>'d')&& ch != 'q')
    {
        printf("请输入a,b,c,d or q\n");
        ch=get_first();
    }
   

    return ch;
}

char get_first(void)
{
    int ch;
   

    ch=getchar();
    while(getchar() != '\n')
    {
        continue;
    }
   

    return ch;
}

void pluse(void)
{
    double plusen;
    double pluse1;
    double pluse2;
   

    printf("请输入第一个数:\n");
    scanf("%lf",&pluse1);
    printf("请输入第二个数:\n");
    scanf("%lf",&pluse2);
    plusen=pluse1+pluse2;
    printf("\n%g+%g=%g\n",pluse1,pluse2,plusen);
   

    system("pause");
    system("CLS");
}

void minus(void)
{
    double minusn;
    double minus1;
    double minus2;
   

    printf("请输入第一个数:\n");
    scanf("%lf",&minus1);
    printf("请输入第二个数:\n");
    scanf("%lf",&minus2);
    minusn=minus1-minus2;
    printf("\n%g-%g=%g\n",minus1,minus2,minusn);
   

    system("pause");
    system("CLS");
}

void multiply(void)
{
    double multiplyn;
    double multiply1;
    double multiply2;
   

    printf("请输入第一个数:\n");
    scanf("%lf",&multiply1);
    printf("请输入第二个数:\n");
    scanf("%lf",&multiply2);
    multiplyn=multiply1*multiply2;
    printf("\n%g*%g=%g\n",multiply1,multiply2,multiplyn);
   

    system("pause");
    system("CLS");
}

void divide(void)
{
    double dividen;
    double divide1;
    double divide2;
   

    printf("请输入第一个数:\n");
    scanf("%lf",&divide1);
    printf("请输入第二个数:\n");
    scanf("%lf",&divide2);

    dividen=divide1/divide2;
    printf("\n%g/%g=%g",divide1,divide2,dividen);
   

    system("pause");
    system("CLS");
}



[ 本帖最后由 hjx1120 于 2015-6-5 21:39 编辑 ]
2015-06-05 21:28
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
char get_choice(void);
char get_first(void);
void pluse(void);
void minus(void);
void multiply(void);
void divide(void);

int main(void){
    int choice;

    while((choice=get_choice()) != 'q' ){
        switch(choice){
            case 'a':
                pluse();
                break;
            case 'b':
                minus();
                break;
            case 'c':
                multiply();
                break;
            case 'd':
                divide();
        }
    }
}

char get_choice(void){
    int ch;
    printf("*****************************\n");
    printf("a. 加法        b. 减法\n");
    printf("c. 乘法        d. 除法\n");
    printf("q. 退出\n");
    printf("*****************************\n");
    ch=get_first();
    while((ch<'a' || ch>'d')&& ch != 'q'){
        printf("请输入a,b,c,d or q\n");
        ch=get_first();
    }
    return ch;
}

char get_first(void){
    int ch;

    ch=getchar();
    while(getchar() != '\n'){
        continue;
    }
   

    return ch;
}

void pluse(void)
{
    double plusen;
    double pluse1;
    double pluse2; 
    printf("请输入第一个数:\n");
    scanf("%lf",&pluse1);
    printf("请输入第二个数:\n");
    scanf("%lf",&pluse2);
    plusen=pluse1+pluse2;
    printf("\n%g+%g=%g\n",pluse1,pluse2,plusen);  
    system("pause");
    system("CLS");
}

void minus(void){
    double minusn;
    double minus1;
    double minus2;

    printf("请输入第一个数:\n");
    scanf("%lf",&minus1);
    printf("请输入第二个数:\n");
    scanf("%lf",&minus2);
    minusn=minus1-minus2;
    printf("\n%g-%g=%g\n",minus1,minus2,minusn);
   

    system("pause");
    system("CLS");
}
void multiply(void){
    double multiplyn;
    double multiply1;
    double multiply2;
     
    printf("请输入第一个数:\n");
    scanf("%lf",&multiply1);
    printf("请输入第二个数:\n");
    scanf("%lf",&multiply2);
    multiplyn=multiply1*multiply2;
    printf("\n%g*%g=%g\n",multiply1,multiply2,multiplyn);
    
    system("pause");
    system("CLS");
}

void divide(void){
    double dividen;
    double divide1;
    double divide2;
   
    printf("请输入第一个数:\n");
    scanf("%lf",&divide1);
    printf("请输入第二个数:\n");
    scanf("%lf",&divide2);
    while(!divide2){
        printf("被除数不能为0请重新输入:");
        scanf("%lf",&divide2); 
    }
    dividen=divide1/divide2;
    
    printf("\n%g/%g=%g",divide1,divide2,dividen); 
    system("pause");
    system("CLS");
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-05 22:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-446226-1-1.html




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

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