有关C语言循环的一个小问题

作者&投稿:卞尚 (若有异议请与网页底部的电邮联系)
C语言循环的一个问题~

循环打印的原因是因为你根本没有清空 scanf的缓冲区,导致第一次输入以后就会一直有第一次输入的数据在缓存里面 加上你的循环又没有结束条件所以导致他会一直打印

while(y)//判断是否继续输入
{
printf("若车到达请输入请输入a,若是离去请输入d:
");
scanf("%c",&ch1);
ch1=getchar(); // 这是新加的
if(ch1=='a')//当车到达时
{ }
else//当停车场满时
{ }
printf("是否结束输入(Y输入1,N输入0):
");
scanf("%d",&y);
}


第一次输入时输入了一个字符和一个回车符,但只读取了一个字符,回车符还在内存空间,下一次直接调出来用,所以不需要用户输入了

/*
输入级数的项数 : 100
项数是100时,和是:0.688172179310195。
继续算(1/0) :1
输入级数的项数 : 200
项数是200时,和是:0.690653430481824。
继续算(1/0) :1
输入级数的项数 : 500
项数是500时,和是:0.692148180557946。
继续算(1/0) :0
Press any key to continue
*/
#include <stdio.h>

void main() {
int i,n,an;
double total,flag;
do {
printf("输入级数的项数 : ");
scanf("%d",&n);
total = 0.0;
flag = 1.0;
for(i = 1; i <= n; ++i) {
total += flag/i;
flag = -flag;
}
printf("项数是%d时,和是:%.15lf。\n",n,total);
printf("继续算(1/0) :");
scanf("%d",&an);
}while(an != 0);
}

# include <stdio.h>
double sum1,sum2;
int N; /*次数*/
main()
{
sum1=sum2=0.00;
printf("输入次数:\n");
scanf("%d",&N);
for(i=1;i<=N;i++)
{
sum1+=(double)(1/i);
if((i%2)==0)
sum2+=(double)(1/i);
else
sum2-=(double)(1/i);
}
printf("Sum1=%f,sum2=%f\n",sum1,sum2);
}
没有调试,应该没有问题

学习下。不会,。。。。


C语言中 我在一个循环里面判断条件当条件成立时 我想退出循环 但是不是...
你的退出循环,若是退出这一次的循环,换句话说,当你判定条件已经成立,不想执行循环中后面的语句,可以使用continue,直接进入下一次的循环。如果希望中断循环,执行循环后面的语句,可以使用break。若希望退出(你没有问)程序,可以使用exit(0)

C语言中二维数组中的一个循环问题
include <stdio.h> include <string.h> void main(){ char s[12]={" *"};\/\/只能有5个空格。int i;for(i=1;i<=5;i++){ printf("\\n%s",s);s[5-i]='*';strcat(s,"*");} } 这样可以的

求教,用c语言,循环语句输出一个五角星,带运行图。
提供示例代码供参考:include <stdio.h>void main(){int i1, j1, k1, i2, j2, k2, i3, j3, k3, i4, j4, k4, m4, n4; printf("\\n\\n" );for ( i1 = 1; i1 < 6; i1++ ) \/*这是五角星的上面一个角*\/{for ( j1 = 1; j1 < 19 - i1; j1++ ) printf(...

C语言中想要一个循环程序在2秒内结束,用哪个函数,怎么用?让一个循环...
2秒的应该要用定时器好一点吧,while(!两秒标志)这样就可以了(两秒定时一到,则置位两秒标志位),如果真的对实时性要求非常高的话,就是说两秒一到,不管程序执行到哪里,都应该结束这个循环,那就要用到任务的调度了,这个比较麻烦,因为会涉及到操作系统了,uC\/OS可以实现这个。至于你说的让...

顺序结构选择结构循环结构的特点
顺序结构、选择结构、循环结构的特点是只有一个入口,只有一个出口,结构内的每一部分都有机会被执行到,结构内不存在死循环。C语言为结构化的语言,C语言有三种结构:顺序结构、选择结构、循环结构。顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,...

C语言中想要一个循环程序在2秒内结束,用哪个函数,怎么用?让一个循环...
大概的:1,int CurTime=(用时间函数提出当前秒数),NextTime=CurTime+2,do { ...} while ( GetCurTime>=NextTime)2,do { ...} while (0>0)

C语言里while里只包含一个常量是什么意思?这个循环的条件是什么?
就是WHILE的括号里只能有一个常量 用这个常量来控制WHILE循环多少次 也就是说 这个常量是WHILE循环的条件 WHILE(1)代表循环一直成立 也就是死循环 当然不只这么一种写法的 int i=0 while(i<10){ i++;} 上面这个代表循环10次 while(1=1){ } while(true){ } 上面两个代表死循环 ...

求问个c语言问题 一个用字符串控制的循环 当输入的字符串为空时 循环...
char str[50];do{ gets(str); \/\/输入字符串到 str中 \/\/别的程序部分 }while(str[0]!=0); \/\/ 字符串第一个为0,就是个空串

c语言用一个for循环输出三行两列的*号,求代码
include <stdio.h> int main(void){ int i,j;for(i=0;i<3;i++){ for(j=0;j<2;j++)printf(" * ");printf("\\n");} return 0;} 已经验证无误~i控制行数j控制列数,望采纳~

C语言:输出一个4*5的循环矩阵
按照你的要求编写的C语言4*5的循环矩阵的程序如下 include<stdio.h>int main(){ int a[]={1,2,3,4,5}; int i,j; for(i=0;i<4;i++){ for(j=5-i;j<5;j++){ printf("%d ",a[j]); } for(j=0;j<5-i;j++){ printf("%d ",a[j]); } printf("\\n"...

册亨县15790114135: 有关C语言循环的一个小问题考虑这两个无限序列: 1.0+1.0/2.0+1.0/3.0+1.0/4.0+... 1.0 - 1.0/2.0+1.0/3.0 - 1.0/4.0+... 编写一个程序来计算这两个序列不断变化... -
成王京果糖:[答案] /* 输入级数的项数 : 100 项数是100时,和是:0.688172179310195. 继续算(1/0) :1 输入级数的项数 : 200 项数是200时,和是:0.690653430481824. 继续算(1/0) :1 输入级数的项数 : 500 项数是500时,和是:0.692148180557946. ...

册亨县15790114135: 跟C语言循环有关的问题~~~大侠指教~ -
成王京果糖: 1,在c语言中分号代表一个语句的结束,这里while语句后面直接就加分号,表示循环体为空,只是不停地在进行自加.所以当满足条件的时候,即k=11的时候,就跳出循环了.这里还要注意k++与++k的区别哦.2,这里的循环次数应该是3次....

册亨县15790114135: 关于C语言循环结构的一个简单问题 -
成王京果糖: #include "stdio.h" void main() {double PI = 0.0; int x = 1,y = 1; for(;y{PI = PI + x * ((double)1 / (double)y); //此处1和y为int型时,1/y等于0(类型强转),因此PI的值始终不变 x = x * -1; y = y + 2;}printf("PI = %.6lf\n",4*PI); }

册亨县15790114135: 关于C语言的一个有关循环的问题 -
成王京果糖: while(y)//判断是否继续输入 { printf("若车到达请输入请输入a,若是离去请输入d:\n"); scanf("%c",&ch1); ch1=getchar(); // 这是新加的 if(ch1=='a')//当车到达时 { } else//当停车场满时 { } printf("是否结束输入(Y输入1,N输入0):\n"); scanf("%d",&y); } 第一次输入时输入了一个字符和一个回车符,但只读取了一个字符,回车符还在内存空间,下一次直接调出来用,所以不需要用户输入了

册亨县15790114135: 一个关于C语言循环的复杂小问题 -
成王京果糖: #include <stdio.h> int main() { int an; do { printf("an = "); scanf("%d",&an); if(an == 1) {<sentences1>; continue;} if(an == 2) {<sentences2>; continue;} if(an == 3) {<sentences3>; continue;} <sentences4>; }while(an != 5); return 0; }

册亨县15790114135: c语言while循环的问题 -
成王京果糖: while循环是对while括号后面的表达式进行真假的判断,,比如你用的a,C语言中有这样的规定,如果a=0;那么a 表达的就是假,如果a不为0,那么他表示的是真,因此,上面的循环,只要a不等于0,那么循环就一直进行 刚开始学的时候,我一...

册亨县15790114135: 关于C语言编程,循环方面出现了一个问题 -
成王京果糖: 这个问题出在scanf("%f",&Newlyenter);和scanf("%c",&ANSWER);上.第一次给Newlyenter赋值后你会再输入个回车,标准输入会将这个回车赋值给ANSWER,这样就直接跳过了scanf("%c",&ANSWER);.修改的话将ANSWER定义成char ANSWER[2],然后修改相应语句,...if(toupper(ANSWER[0])=='N')...或者连续写两条scanf("%c",&ANSWER);

册亨县15790114135: C语言循环小问题 -
成王京果糖: 因为if(i%2!=0)成立了就不会执行下面的else了啊!而且只是不执行else下面那一句其余的一样要执行啊!!!没执行else就不会有continue就不会跳过本次循环

册亨县15790114135: C语言循环小问题.
成王京果糖: 20次,for(i=5; i; i--),i为0时跳出循环,也就一共5次.里面4次.共20次

册亨县15790114135: C语言计算和循环的问题. -
成王京果糖: #include<stdio.h> int main(void) { int i = 1, k; float j, sum = 0; do{ printf ("请输入所要计算的数字,按0结束输入:\n\n"); do { printf (" %d、", i); scanf ("%f", &j); printf ("\n"); sum = sum + j; i++; } while ( j != 0 ); printf (" sum = %.2f\n ",...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网