| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5775 人关注过本帖
标题:请问怎么使用while让程序多次使用?
只看楼主 加入收藏
y529879803
Rank: 1
等 级:等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
收藏
 问题点数:0 回复次数:9 
请问怎么使用while让程序多次使用?
while语句是循环语句,应该可以让程序多次使用,但是我用的时候有时候可以循环有时候不能,能不能告诉我是哪里有差错呢?还有请问怎么让这个不能多次使用的程序循环起来让他像那个没有弹出press any key一样呢?
#include<stdio.h>
#include<string.h>
#include<math.h>
#define A 1
main()
{
    int h,i,j,k,l;
    double b,c,d,e,f,g;
    char a[A];
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
gets (a);
while (a[0]=='1'){
    printf("enter degree\n");
    puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
gets (a);
}
}
这个不弹出press any key
图片附件: 游客没有浏览图片的权限,请 登录注册



#include<stdio.h>
#include<string.h>
#include<math.h>
#define A 1
main()
{
    int h,i,j,k,l;
    double b,c,d,e,f,g;
    char a[A];
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
gets (a);
while (a[0]=='1'){
    printf("enter degree\n");
    scanf("%d",&j);
    puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
gets (a);
}
}这个就会弹出press any key
图片附件: 游客没有浏览图片的权限,请 登录注册
,为什么我只是多输入一个数字多赋值一次这个程序就不循环下去达到多次使用的目的呢?请问我应该怎么做才能让加入赋值的程序也可以继续循环多次执行?


搜索更多相关主题的帖子: include double 
2016-11-20 17:09
y529879803
Rank: 1
等 级:等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
收藏
得分:0 
感觉就像加了一个赋值的那个while循环的最后一句gets (a);没有起作用一样。。。

碧蓝航线真好玩
2016-11-20 17:10
y529879803
Rank: 1
等 级:等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
收藏
得分:0 
是复合语句的问题吗?我不知道该怎么做。。。

碧蓝航线真好玩
2016-11-20 17:13
y529879803
Rank: 1
等 级:等待验证会员
帖 子:65
专家分:7
注 册:2016-11-10
收藏
得分:0 
后来完全换了个方法,用的for的死循环。。。

#include<stdio.h>
#include<string.h>
#include<math.h>
main()
{
    int h,i,j,k,l;
    double b,c,d,f,g;
    char a,e;
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
for (;;h++)
{
    scanf("%d",&i);
if(i==1)
{
    printf("enter degree\n");
    scanf("%d",&j);
c=3.14159*j/180;
f=sin(c);
printf("%lf\n\n\n\n",f);
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
}
if(i==2){printf("enter degree\n");
    scanf("%d",&j);
c=3.14159*j/180;
f=cos(c);printf("%lf\n\n\n\n",f);
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
}
if(i==3){printf("enter 2 numbers\n");
scanf("%d%d",&j,&k);
l=pow (j,k);
printf("%d\n\n\n\n",l);
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
}
if(i==4){printf("enter 1 number\n");
scanf("%d",&j);
k=sqrt(j);
printf("%d\n\n\n\n",k);
puts ("====menu====\nsin.............................. 1\ncos.............................. 2\npow.............................. 3\nsqrt............................. 4\nexit............................. 5");
}
if(i==5)
break;


}
}

这个某种意义上似乎也算达到目的,但是我还是完全不会while。。。还有do while,论坛上11年有个叫异世妖的人也做过类似的东西,我试了她的最后的结果。。。她比我多一个是否继续的选项,需要输入任意值才会出菜单,输入q结束程序。。。其实我也想要在计算结果之后输入特定值才显示菜单继续进行计算但是我搞不出来。。。她那个不是在函数库里的。https://bbs.bccn.net/thread-351312-1-1.html这个是原帖。

[此贴子已经被作者于2016-11-20 21:10编辑过]


碧蓝航线真好玩
2016-11-20 21:06
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
1楼中第二个程序,gets();前面加一行getchar() 吸收回车符
4楼中的程序, 输入5就退出

[此贴子已经被作者于2016-11-20 22:52编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-11-20 22:50
a969798593
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:70
注 册:2016-10-13
收藏
得分:0 
while(scanf("***")!=EOF)
2016-11-21 08:50
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
你先把循环体写成一个函数啊(这样看着直观),然后通过循环等方便用啊

2016-11-21 09:05
groveer
Rank: 3Rank: 3
来 自:世界的一角
等 级:论坛游侠
威 望:1
帖 子:77
专家分:182
注 册:2013-11-18
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
#define A 1
int main()
{
    char a[A];
    do
    {
        puts ("====menu====\n"
              "sin.............................. 1\n"
              "cos.............................. 2\n"
              "pow.............................. 3\n"
              "sqrt............................. 4\n"
              "exit............................. 5");
        gets (a);
        if(!strcmp(a,"5"))
            break;
    }while (1);
}

while条件一直为真就是死循环,然后在循环内给个退出条件即可

付出不亚于任何人的努力~
2016-11-21 12:17
lc5263
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-17
收藏
得分:0 
会不会是把return 0也写进去了?
2016-11-22 22:11
groveer
Rank: 3Rank: 3
来 自:世界的一角
等 级:论坛游侠
威 望:1
帖 子:77
专家分:182
注 册:2013-11-18
收藏
得分:0 
回复 9楼 lc5263
把break换成renturn 0就是退出main函数 光break是跳出死循环。

付出不亚于任何人的努力~
2016-11-22 22:24
快速回复:请问怎么使用while让程序多次使用?
数据加载中...
 
   



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

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