简单模拟
写了一个目前需要掌握的元素周期表抽问程序
#include<bits/stdc++.h>
#define in Read()
#define re register
inline int in{
int i=0,f=1;char ch;
while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();
if(ch=='-')f=-1,ch=getchar();
while(ch<='9'&&ch>='0')i=(i<<1)+(i<<3)+ch-48,ch=getchar();
return i*f;
}
int main(){
srand(time(0));
while(true){
int a=rand()%6+1,b=rand()%8+1;
printf("\n请回答:第%d周期,第",a);
if(a==4){
if(rand()%2){
bool vis_8=false;
while(b>0){
if(b==8){
printf("VIII");
vis_8=true;
break;
}
if(b==4){
printf("IV");
break;
}
if(b>=5)printf("V"),b-=5;
printf("I");
--b;
}
if(!vis_8)printf("B");
printf("族的元素\n\n");
system("pause");
continue;
}
}
bool vis_0=false;
while(b>0){
if(b==8){
printf("0");
vis_0=true;
break;
}
if(b==4){
printf("IV");
break;
}
if(b>=5)printf("V"),b-=5;
printf("I");
b-=1;
}
if(!vis_0)printf("A");
printf("族的元素\n\n");
system("pause");
}
}
刚刚上化学课的时候发现了上面那个程序有个小坑:第一主族只有0、1主族的元素
debug码
#include<bits/stdc++.h>
#define in Read()
#define re register
inline int in{
int i=0,f=1;char ch;
while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();
if(ch=='-')f=-1,ch=getchar();
while(ch<='9'&&ch>='0')i=(i<<1)+(i<<3)+ch-48,ch=getchar();
return i*f;
}
int main(){
srand(time(0));
while(true){
int a=rand()%6+1,b=rand()%8+1;
printf("\n请回答:第%d周期,第",a);
if(a==1){
if(b%2)printf("IA族的元素\n\n");
else printf("0族的元素\n\n");
system("pause");
continue;
}
if(a==4){
if(rand()%2){
bool vis_8=false;
while(b>0){
if(b==8){
printf("VIII");
vis_8=true;
break;
}
if(b==4){
printf("IV");
break;
}
if(b>=5)printf("V"),b-=5;
printf("I");
--b;
}
if(!vis_8)printf("B");
printf("族的元素\n\n");
system("pause");
continue;
}
}
bool vis_0=false;
while(b>0){
if(b==8){
printf("0");
vis_0=true;
break;
}
if(b==4){
printf("IV");
break;
}
if(b>=5)printf("V"),b-=5;
printf("I");
b-=1;
}
if(!vis_0)printf("A");
printf("族的元素\n\n");
system("pause");
}
}