求参加竞赛人数(10分)
题目内容:某中学举行数学竞赛。假设每个年级组人数不超过100人,一年级组中及格生是不及格生的3倍多1人;二年级组中及格生是不及格生的6倍;二年级组及格生比一年级组及格生多5人。编写程序,求一、二年级组共有多少学生参加竞赛。
输入:无
输出:参加竞赛人数(答案有多个,每个答案占一行,按从小到大排列)
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main (){
/*
一年级及格:suc1 =fail1*3+1
2年级及格 :suc2 =suc1+5
一年级不及格:fail1=(suc1-1)/3(fail1%3==1时才可以,两个整数相除的结果在数学上和计算机上的结果不一样。)
二年级不及格:fail2=suc2/6 (同上)
限制:suc1+fail1<100 suc2+fail2<100
总人数:suc1+suc2+fail1+fail2
*/
/*
思路:一个循环,两个限制条件
循环从1开始,只要满足限制条件的都算数,到一百截止(其实到67也行)
*/
int suc1=0,suc2=0,fail1=0,fail2=0;
// printf("suc1\tfail1\tsuc2\tfail2\tsum\n");
int i;
for(i=1;i<100;i++){
suc1=i;
suc2 =suc1+5;
if(suc1%3==1){
fail1=(suc1-1)/3;
}else{
continue;
}
if(suc2%6==0){
fail2=suc2/6;
}else{
continue;
}
if((suc1+fail1<100)&& (suc2+fail2<100)){
int sum=suc1+suc2+fail1+fail2 ;
//printf("%d\t%d\t%d\t%d\t",suc1,fail1,suc2,fail2);
printf("%d\n",sum);
}
}
}