如何在C语言程序中重一个循环跳到另一个循环

Python015

如何在C语言程序中重一个循环跳到另一个循环,第1张

for(a=80a>=20a--)和for(b=60b>=0b--)这两个循环中,当a=20时,for(a=80a>=20a--)这个循环仍然有效,只有当a<20时才会退出循环,所以你后面的if(a==20&&b==0)条件就永远不会成立;另外for(b=60b>=0b--)这个循环语句中,如果你的变量b定义的是无符号型变量的话,这个循环语句就是一个死循环,永远都不会退出来,同样因为当b=0时,循环条件依然成立,再执行一次b--之后,b的值又会变为该变量的最大值(如:b为unsigned

char变量的话,b=0时,b--等于255),这样b>=0永远都成立。

还有,你的if(a==20&&b==0)这个语句后面加了分号,语句本身就没有什么意义了,只相当于一个空的语句,应该要加大括号。

本人将功能重现,代码如下:(解决了你的源代码中无法正常循环运行的问题)

#include<stdio.h>

#define N 4 //人数

#define KMS 3 //科目数

struct student

{

char name[20]

float score[3]//score[0]语文,score[1]数学,score[2]历史

float ave

}stu[N]

void input(student p[],int n)

{

int i

for(i=0i<ni++)

{

scanf("%s%f%f%f",p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2])

}

}

void perave(student p[],int n)

{

int i

for(i=0i<ni++)

p[i].ave=(p[i].score[0]+p[i].score[1]+p[i].score[2])/3.0

}

void ehsbave(float p[],student q[],int n)//main()中p[]用于存储单科均分p[KMS]

{

int i,j

for(i=0i<KMSi++)

{

p[i]=0

for(j=0j<nj++)

p[i]+=q[j].score[i]

p[i]/=n

}

}

void search(student p[],int n,int *l1,int *l2)

{

int r,c

*l1=0*l2=0

for(r=0r<nr++)

for(c=0c<KMSc++)

if(p[*l1].score[*l2]<p[r].score[c])

{

*l1=r

*l2=c

}

}

main()

{

float a[KMS]

int r,c,i,*p_r,*p_c

char subject[KMS][20]={"语文","数学","历史"},pd='y'

p_r=&rp_c=&c

for(pd=='y')

{

printf("输入%d名学生的姓名,语文,数学,历史成绩\n",N)

input(stu,N)

perave(stu,N)

ehsbave(a,stu,N)

search(stu,N,p_r,p_c)

printf("姓名\t平均成绩\n")

for(i=0i<Ni++)

printf("%s\t%.2f\n",stu[i].name,stu[i].ave)

printf("科目\t平均成绩\n")

for(i=0i<KMSi++)

printf("%s\t%.2f\n",subject[i],a[i])

printf("单科最高:\n姓名\t科目\t分数\n%s\t%s\t%.2f\n",stu[r].name,subject[c],stu[r].score[c])

printf("是否继续(y/n)?\n")

getchar()

pd=getchar()

}

}

例如:

#include<stdio.h>

intmain(void)

{

charc

c=getchar()

while(c!='')//输入空格退出

{

printf("%c",c)//这里改成你需要的那个函数做相应的工作就可以了

c=getchar()

}

return0

}

扩展资料

C语言循环控制语句

#include<stdio.h>

intmain(){

inta

/*forloopexecution*/

for(a=10a<20a=a+1)

{

printf("valueofa:%d\n",a)

}

return0

}

C编程语言中do...while循环的语法是-

do{

statement(s)

}while(condition)