c语言-求这个程序的一个问题!

问题描述

求这个程序的一个问题!

#include
#include
void main()
{
double a,b,c,disc,x1,x2,p,q;
int n;
char choice;
printf("请依次输入a,b,c的值:n");
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
if(disc>=0)
{
do
{
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q,x2=p-q;
printf("x1=%7.2fnx2=%7.2fn",x1,x2);
printf("是否继续(是:Y 否:任意)");
choice=getchar();
if(choice=='Y'||choice=='y')
n=1;
else
n=0;

}while(n==1);
}
else

printf("输入a、b、c的有误!");
}

为什么这个循环出不来,不知道是哪里错了,怎么改,求解

解决方案

你好,你的问题是这样的。
在你输入完c后,就要按下回车确定,这个时候,缓存区里储存的字符是enter键。
那么在choice=这一行里,getchar将直接读取那个enter键并赋值给choice,接下来的话就直接跳出循环了。

解决的方法是:在if前scanf后的位置加上一句“getchar();”这样就可以把缓存区里面的那个enter字符给读取掉了,接下来就正常了。。。

希望对你有帮助,你可以自己试一下。。觉得可以望采纳

解决方案二:

如果要无限继续的话,要在循环内,choice的赋值前加

解决方案三:

你是不是不小心按了回车了?按了回车程序就结束

解决方案四:

scanf("%lf%lf%lf",&a,&b,&c);
后增加一行:
getchar();
过滤可能错误出现的回国换行。

时间: 2025-01-01 16:31:08

c语言-求这个程序的一个问题!的相关文章

c语言-求大神设计一个C语言的连连看!!谢谢!!

问题描述 求大神设计一个C语言的连连看!!谢谢!! 1 问题描述 连连看是一个经典的游戏,本课题要求实现一个文本界面的连连看游戏. 2 基本要求 要能提供以下几个基本功能: (1)定义一个矩阵,随机产生字符布置地图,例如下面这个4x4 的地图. 1 2 3 4 B C H C 1 C F B E 2 A E D F 3 C H A D 4 (2)游戏者通过坐标(1,2).(3,4)判定第一行第二列的字符与第三行第四列的字符是相同的),判定争取则相应位置的字符消失,如判断错误给出相应的错误提示,允

c语言-急!!求大神能帮忙注释一个C语言编译器的程序。大概说一下程序的流程和框架。

问题描述 急!!求大神能帮忙注释一个C语言编译器的程序.大概说一下程序的流程和框架. 谢谢!灰常感谢~~~~留邮箱发代码~~~~程序目的是完成词法分析.语法分析.语义分析等功能,并生成某种机器上的目标代码(汇编语言)或中间代码(四元式). 解决方案 不懂-程序目的是完成词法分析.语法分析.语义分析等功能, 解决方案二: 363581806@qq.com 尽量试试,刚刚做完编译原理实验,应该能看懂一点-- 解决方案三: 906254242@qq.com我来.

c语言-求一个关于C语言中有关文件和链表的一个程序

问题描述 求一个关于C语言中有关文件和链表的一个程序 我们老师布置了一道题:有A和B两个文件夹,每个文件夹下面都有若干子目录.但是 不知道目录里面文件的类型和具体的文件数目.现在要创建一个C文件夹,对C文件夹 的要求是:(1)C文件夹下面子目录的文件名和文件长度是A的,打开的内容是B的( 打开之后只要内容是B的,不要求内容完整与否).(2)通过键入命令或是其他方式 C文件夹可以直接恢复到B文件夹.要求使用链表完成. 我们老师只把题目说了这些,他说对A.B文件夹的定义让我们自己讨论吧.能实现他所

数组-求关于C语言的五子棋程序例子

问题描述 求关于C语言的五子棋程序例子 实现一个五子棋游戏程序编制,棋盘是15X15的方格,棋子放交叉点 , 解决方案 可以 Google 到一些有用的资源的 C语言设计一个人机对战的五子棋程序 VC实现五子棋游戏的一个算法示例 解决方案二: 这里有几个现成的http://download.csdn.net/download/q511249662/3271854http://down.51cto.com/data/68237http://download.csdn.net/detail/enjo

求解决-怎么用C语言编写这个程序,求指教

问题描述 怎么用C语言编写这个程序,求指教 本题要求编写程序计算某年某月某日是该年中的第几天. 输入格式: 输入在一行中按照格式"yyyy/mm/dd"(即"年/月/日")给出日期.注意:闰年的判别条件是该年年份能被4整除但不能被100整除.或者能被400整除.闰年的2月有29天. 输出格式: 在一行输出日期是该年中的第几天. 输入样例1: 2009/03/02 输出样例1: 61 输入样例2: 2000/03/02 输出样例2: 62 解决方案 网上一搜有很多,c

怎么在c语言程序中一个读入函数

问题描述 怎么在c语言程序中一个读入函数 在c语言中如何读入一个函数 ,并且运用这个函数? 我在编写科学计算器的定积分运算的时候遇到了需要用户自己输入一个函数然后才 能计算该函数的定积分的问题.请问1怎么才能读入一个函数,并利用这个函数呢? 解决方案 http://download.csdn.net/detail/lpw32682770/1587368 解决方案二: 读入函数是什么意思,编译器自带的库里的函数只要引入对应的头文件就可以使用了,如果是封装在DLL里的函数要先获得函数的地址 解决方案

数字-关于C语言求平均数的程序

问题描述 关于C语言求平均数的程序 大家帮我看看,为什么我在输入4个2之后,结果平均数是1呢? # include<stdio.h> main(){ printf("*************************n"); printf("这个程序是求平均数的程序n"); printf("*************************n"); int i = 0 ; int n = 0 ; int p ; double aver

求解决-求用c语言编写此程序,越简单越好,希望大神们注释一下

问题描述 求用c语言编写此程序,越简单越好,希望大神们注释一下 /**皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,--,如此反复.问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少? 输入格式: 输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内. 输出格式: 在一行中顺序输出皮球第n次落地时在空中经过的距离.以及第n次反弹的高度,其间以一个空格分隔,保留一位小数.题目保证计算结果不超过双精度范围. 输入样例: 33 5 输出样例:

c语言-C语言求素数一个小问题

问题描述 C语言求素数一个小问题 题目是要求n以内素数的平方根的和,编好了之后怎么运行答案都不对,加了这句选中的语句才对了,请问这句if(j>=k+1)有什么用?在上面一个for循环中j应该是到不了k+1的吧--求详解 解决方案 你的程序写的不好,没有用缩进和正确的换行,结果是自找麻烦,你自己都搞不清楚for和什么语句配对了. 这里有两重循环,外循环是从3~n找素数,内侧是判断i是不是素数 if (k >= i+1)表示,循环走完了,k才会等于i+1,而循环如果提前break表示它可以被整除,