| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1349 人关注过本帖
标题:求解c语言问题?
只看楼主 加入收藏
格雷迪
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:1
注 册:2011-2-21
结帖率:33.33%
收藏
 问题点数:0 回复次数:34 
求解c语言问题?
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,x,y;
    int m;
    printf("************开始***********\n");
    printf("       输入1为加法 \n");
    printf("       输入2为减法 \n");
    printf("       输入3为乘法 \n");
    printf("       输入4为除法 \n");
    printf("       输入5为退出 \n");
    printf("************结束***********\n");
    printf("输入操作:");
    scanf("%d",&n);
    switch(n)
    {
    case 1:printf("选择加法");
        scanf("%d%d",&x,&y);
        printf("%d+%d=%d",x,y,x+y);
                break;
    case 2:printf("选择减法");
        scanf("%d%d",&x,&y);
        printf("%d-%d=%d",x,y,x-y);
                break;
    case 3:printf("选择乘法");
        scanf("%d%d",&x,&y);
        printf("%d*%d=%d",x,y,x*y);
                break;
    case 4:printf("选择除法");
        scanf("%d%d",&x,&y);
        printf("%d/%d=%d",x,y,x/y);
                break;
    case 5:printf("退出");
                m=0;
                break;
    }
}

怎么让这个程序在运行完一种运算后不自动退出 ,可以继续输入下一种运算,请高手帮忙改改;谢啦!!

搜索更多相关主题的帖子: c语言 
2011-05-17 21:32
其实、不想说
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:156
注 册:2011-3-3
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,x,y;
    int m;
    char a;

    while(1)
    {
    printf("************开始***********\n");
    printf("       输入1为加法 \n");
    printf("       输入2为减法 \n");
    printf("       输入3为乘法 \n");
    printf("       输入4为除法 \n");
    printf("       输入5为退出 \n");
    printf("************结束***********\n");
    printf("输入操作:");
    scanf("%d",&n);
    switch(n)
    {
    case 1:printf("选择加法");
        scanf("%d%d",&x,&y);
        printf("%d+%d=%d",x,y,x+y);
                break;
    case 2:printf("选择减法");
        scanf("%d%d",&x,&y);
        printf("%d-%d=%d",x,y,x-y);
                break;
    case 3:printf("选择乘法");
        scanf("%d%d",&x,&y);
        printf("%d*%d=%d",x,y,x*y);
                break;
    case 4:printf("选择除法");
        scanf("%d%d",&x,&y);
        printf("%d/%d=%d",x,y,x/y);
                break;
    case 5:printf("退出");
                m=0;
                break;
    }
    printf("是否继续?Y/N");
    scanf("%c",&a);
    if (a == 'Y'|| a = 'y')
        {
            continue;
        }
    else
        {break;}
  }
}
我没运行!!你试下、、、
2011-05-17 22:01
格雷迪
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:1
注 册:2011-2-21
收藏
得分:0 
不行啊!还是只执行一次后就退出了。
2011-05-17 22:10
ucyan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:198
注 册:2011-4-12
收藏
得分:0 
2楼正解
不过if的第一个括号有问题不是中文中的(应该是英文的(

[ 本帖最后由 ucyan 于 2011-5-18 12:11 编辑 ]
2011-05-17 22:38
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
在每个分支的后面加上 main();
代码如下:
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,x,y;

    printf("\n************开始***********\n");
    printf("       输入1为加法 \n");
    printf("       输入2为减法 \n");
    printf("       输入3为乘法 \n");
    printf("       输入4为除法 \n");
    printf("       输入5为退出 \n");
    printf("************结束***********\n");
    printf("输入操作:");
    scanf("%d",&n);
    switch(n)
    {
    case 1:
        printf("选择加法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d+%d=%d",x,y,x+y);
        main();
    
    case 2:
        printf("选择减法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d-%d=%d",x,y,x-y);
        main();
    
    case 3:
        printf("选择乘法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d*%d=%d",x,y,x*y);
        main();
    case 4:
        printf("选择除法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);

        if(y!=0)
            printf("%d/%d=%d",x,y,x/y);
        else
            printf("输入错误,除数不能为0!\n");
            main();
    case 5:
        printf("退出\n");break;
    default:
        printf("输入错误,请输入1-5的整数!\n");
        main();
    }
}


代码我改了下,刚开始注意下代码的风格,可以上网看看书,这些课本一般不会讲,现在可能觉得没什么,但以后很重要,我上学期刚学也是如此。
然后有很多考虑不全面,比如你输入 除数为0的时候,怎么执行除法?
输入操作的时候,你没输入1-5的整数时,怎么执行程序?
这些都是小问题,注意下吧。

Einmal ist keinmal
2011-05-17 22:43
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
呃,可以实现楼主想要的功能,但是代码还是有问题,现在没时间了,明天帮你整吧。

Einmal ist keinmal
2011-05-17 22:51
格雷迪
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:1
注 册:2011-2-21
收藏
得分:0 
四楼说的是if循环吧。
  这个问题和   if (a == 'Y'|| a = 'y')中少加个等号都不是重点。
这个程序想要的效果是 当用户不输入结束语句时 程序不结束。而不是输入一次结果后程序就退出了。
2011-05-17 22:51
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
运行了,正解的代码。
程序代码:
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int n,x,y;

    printf("\n************开始***********\n");
    printf("       输入1为加法 \n");
    printf("       输入2为减法 \n");
    printf("       输入3为乘法 \n");
    printf("       输入4为除法 \n");
    printf("       输入5为退出 \n");
    printf("************结束***********\n");
    printf("输入操作:");
    scanf("%d",&n);
    switch(n)
    {
    case 1:
        printf("选择加法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d+%d=%d",x,y,x+y);
        main();break;
    
    case 2:
        printf("选择减法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d-%d=%d",x,y,x-y);
        main();break;
    
    case 3:
        printf("选择乘法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);
        printf("%d*%d=%d",x,y,x*y);
        main();break;
    case 4:
        printf("选择除法,请输入两个整数:\n");
        scanf("%d%d",&x,&y);

        if(y!=0)
            printf("%d/%d=%d",x,y,x/y);
        else
            printf("输入错误,除数不能为0!\n");
        
        main();break;
    case 5:
        printf("退出\n");break;
    default:
        printf("输入错误,请输入1-5的整数!\n");
        main();
    }

    
}

Einmal ist keinmal
2011-05-17 22:56
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
收藏
得分:0 
回复 5楼 linw1225
我 也学点啊,在最后加main()的用处是什么了?
2011-05-17 22:58
格雷迪
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:1
注 册:2011-2-21
收藏
得分:0 
  太感谢linw1225了。程序基本上实现了,现在刚开始学这东西确实有太多没考虑到的了。    不过这个程序还能不能改成每次输入一次后前面的提示不再重复,这样可能看着比较好些。   
2011-05-17 23:03
快速回复:求解c语言问题?
数据加载中...
 
   



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

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