当前位置:首页 » 编程语言 » c语言为什么循环使用不了
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言为什么循环使用不了

发布时间: 2022-09-25 02:11:45

c语言 写了一个程序代码 为什么不能循环了

因为你那个a:break直接执行了,顺序执行下来会执行这个break,你把这个记号放到return那里就可以了
a:return 0;

② c语言while循环为什么执行不了

因为你的break没有在大括号里,每次直接跳出了循环,条件判断后的多条语句一定要放到括号里。我帮你改了一下,你再试试。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
intnumber,a;
inti=9;
srand((unsigned)time(NULL));
number=rand()%101;
while(1){
i--;
if(i<0){
printf("游戏结束你猜错了,这个数是%d",number);
break;
}

printf("此数范围是0-100");
printf("请输入一个0-100的数字");
scanf("%d",&a);
if(a==number)
{
printf("游戏结束你猜对了,这个数是%d",number);
}
elseif(a<number)
{
printf("你输入的数比这个数小,你还有%d次机会,请重新输入",i);
}
elseif(a>number)
{
printf("你输入的数比这个数大,你还有%d次机会,请重新输入",i);
}
elseif(a==number){
printf("游戏结束你猜对了,这个数是%d",number);
return0;
}
}
return0;
}

③ c语言for语句为什么循环不成功

你的循环成功了,但是没有在每次循环a=0,造成完数的判断有误,最后只有1一个“完数”(因为a被累加起来了)

④ C语言scanf语句导致无法进入循环

问题已经解决,还是比较简单的。。。一个小问题而已。是scanf函数的问题。

我先贴图好吧,我运行的结果。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define SIZE 50

#define RAT 5

struct movie{

char name[SIZE];

int rating;

};

void * s_gets(char *,int n);

int main()

{

int i=0,j,k;

struct movie *mov;

printf("输入你想录入的影片数量 ");

scanf("%d",&k);

mov=(struct movie *) malloc(k*sizeof(struct movie));

printf("输入你想录入的第一部影片名称 ");

while(i<k&&s_gets(mov[i].name,SIZE)!=NULL&&mov[i].name[0]!='')

{


printf("输入影片序号:");

scanf("%d",&mov[i++].rating);

while(getchar()!=' ')

continue;

puts("输入下一部影片名称:(empty line to stop):");

}//printf("%s ",mov[0].name);

if(i==0)

printf("No data entered ");

else

printf("Here is the movie list: ");


for(j=0;j<i;j++)

{

printf("Movie: %s Rating: %d ",mov[j].name,mov[j].rating);


}printf("Bye ");

return 0;

}


void * s_gets(char *ch,int n)

{

char *ret_val;

char *find;

fflush(stdin); //getchar();可选,最好用fflush函数;

ret_val=fgets(ch,n,stdin);

if(ret_val)

{

find=strchr(ch,' ');

if(find)

*find='';

else

while(getchar()!=' ')

continue;

}

return ret_val;

}

然后贴我的源码,就多了一行代码而已,在你的s_get函数里的fgets函数前面加了个fflush函数,位置,我已经加粗标明出来了。。。问题也很简单,就是在第一个scanf函数的时候,你是按了回车的,所以第二次使用scanf的时候,fgets直接吃掉了回车,这是我们不需要的,所以在这个之前,我们必须先把stdin输入流里的回车,清理掉,使用fflush函数一次清理了stdin输入流,等stdin输入流干净了之后,再调用fgets就不会出错了,当然也可以使用getchar函数把回车吃掉,不过比较麻烦,我一般喜欢用fflush函数,反正输入前,那些脏东西,我们不关心,也不需要,而且万一有多个呢,getchar只能清理一个脏东西,而fflush函数,直接全部冲掉,来的简单方便。。。。

问题解决,请采纳!不懂再问。

⑤ c语言for循环无法正常执行

你没有搞清楚for循环的结构,所以你的for循环写错了
for(初始化;循环条件;循环增量)
很明显你把第一个初始化和最后的增量弄反了,这就导致了你的循环是个永不退出的死循环了。
换成for(b=b;b<=12;b=b+1)就可以了。

⑥ 为什么下面的c语言while循环会失败啊

ch是字符,你只能从键盘输入单个字符存入ch,不能用ch和yes这种字符串比较大小

#include<stdio.h>

voidmax(inti,intj)
{
if(i>j)
printf("%d>%d ",i,j);
else
printf("%d>%d ",j,i);

}

intmain(void)
{
inta,b;
charch;

do
{
printf("请输入要进行比大小的两个数字,中间用空格隔开 ");
scanf("%d%d",&a,&b);

max(a,b);
printf("如果要继续请输入Y或者y ");
scanf("%c",&ch);//%c前面必须加空格

}while('y'==ch||'Y'==ch);//ch是字符,所以只能和Y/y比较是否相等,"yes"是字符串

return0;
}

⑦ C语言无法循环是哪里出了问题

if...else不是循环语句。

下面是一个例子(用的while循环):

#include <stdio.h>

#include <math.h>

int main()

{

double F,C;

int n;

int i=1;

scanf("%d",&n);

while(i<=n)

{

scanf("%lf",&F);

C = 5 * (F-32) / 9;

printf("%.5lf ",C);

i++;

}

return 0;

}

运行截图: