最近在学C,看到这个例子感觉挺不错的。拿出来分享
刚学不久,一些写法可能不是最优,还有代码书写看起来可能不规范,希望大家能指出来!=》这个是原题
#include "stdafx.h"
#include <math.h>
/*
1.这道题的答案是
A.A B.B C.C D.D
2.第5题的答案是
A.C B.D C.A D.B
3.以下选项中哪一题的答案与其他三项不同
A.第3题 B.第6题 C.第2题 D.第4题
4.以下选项中哪两题的答案相同
A.第1,5题 B.第2,7题 C.第1,9题 D.第6,10题
5.以下选项中哪一题的答案与本题相同
A.第8题 B.第4题 C.第9题 D.第7题
6.以下选项中哪两题的答案与第8题相同
A.第2,4题 B.第1,6题 C.第3,10题 D.第5,9题
7.在此十道题中,被选择次数最少的选项字母为
A.C B.B C.A D.D
8.以下选项中哪一题的答案与第1题的答案在字母表中不相邻
A.第7题 B.第5题 C.第2题 D.第10题
9.已知“第1题与第6题的答案相同”与“第X题与第5题的答案相同”的真假性相反,那么X为
A.第6题 B.第10题 C.第2题 D.第9题
10.在此十道题中,ABCD四个字母中出现的次数最多者与最少者的差为
A.3 B.2 C.4 D.1
*/
int MinTimes(int a[],int n)
{
int i,abcd={0};
for(i=0;i<n;i++) abcd]++;
int min=abcd,j=0;
for(i=0;i<4;i++)
{
if(min>abcd) {min=abcd; j=i;}
}
return j;
}
int main(int argc, char* argv[])
{
int i;
int a;
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
for(a=0;a<4;a++)
{
//2.第5题的答案是 A.C B.D C.A D.B
if(a==0 &&a==2 ) {;}
else if (a==1 &&a==3) {;}
else if (a==2 &&a==0) {;}
else if (a==3 &&a==1) {;}
else continue;//下一个候选者
//3.以下选项中哪一题的答案与其他三项不同 A.第3题 B.第6题 C.第2题 D.第4题
if(a==0 && a!=a && a==a && a==a) {;}
elseif(a==1 && a!=a && a==a && a==a) {;}
else if(a==2 && a!=a && a==a && a==a) {;}
else if(a==3 && a!=a && a==a && a==a ) {;}
else continue;
//4.以下选项中哪两题的答案相同 A.第1,5题 B.第2,7题 C.第1,9题 D.第6,10题
if(a==0 && a==a) {;}
else if(a==1 && a==a) {;}
else if(a==2 && a==a) {;}
else if(a==3 && a==a) {;}
else continue;
//5.以下选项中哪一题的答案与本题相同 A.第8题 B.第4题 C.第9题 D.第7题
if(a==0 && a==a) {;}
else if(a==1 && a==a) {;}
else if(a==2 && a==a) {;}
else if(a==3 && a==a) {;}
else continue;
//6.以下选项中哪两题的答案与第8题相同A.第2,4题 B.第1,6题 C.第3,10题 D.第5,9题
if(a==0 && a==a && a==a ) {;}
else if(a==1 && a==a && a==a) {;}
else if(a==2 && a==a && a==a) {;}
else if(a==3 && a==a && a==a) {;}
else continue;
//8.以下选项中哪一题的答案与第1题的答案在字母表中不相邻 A.第7题 B.第5题 C.第2题 D.第10题
if(a==0 &&(abs(a-a)!=1) && (abs(a-a)==1) && (abs(a-a)==1) && (abs(a-a)==1) ) {;}
else if(a==1 &&(abs(a-a)!=1) && (abs(a-a)==1) && (abs(a-a)==1) && (abs(a-a)==1) ) {;}
else if(a==2 &&(abs(a-a)!=1) && (abs(a-a)==1) && (abs(a-a)==1) && (abs(a-a)==1) ) {;}
else if(a==3 &&(abs(a-a)!=1) && (abs(a-a)==1) && (abs(a-a)==1) && (abs(a-a)==1) ) {;}
else continue;
//9.已知“第1题与第6题的答案相同”与“第X题与第5题的答案相同”的真假性相反,那么X为A.第6题 B.第10题 C.第2题 D.第9题
if(a==0 && ((a==a) ^ (a==a ) ) ) {;}
else if(a==1 && ((a==a) ^ (a==a ) ) ) {;}
else if(a==2 && ((a==a) ^ (a==a ) ) ) {;}
else if(a==3 && ((a==a) ^ (a==a ) ) ) {;}
else continue;
//7.
if(a==0 && MinTimes(a,10)==2){;}
else if(a==1 && MinTimes(a,10)==1){;}
else if(a==2 && MinTimes(a,10)==0){;}
else if(a==3 && MinTimes(a,10)==3){;}
else continue;
//10关不用了
printf("\n本试题的答案为");
for(i=1;i<=10;i++) printf(" %c",a+'a');
}
return 0;
}=》这个是运行的结果!!
锋范fast 发表于 2018-9-17 22:41
这个for循环是不是少了好多中括号????
你可以都打上呀,便于理解,但阅读性可能会差点 angel8327 发表于 2018-9-18 13:17
学习一下~这排版看起来好舒服~~
我也是按照我的感觉来排的,不知道是不是规范的。 这个题目真的是666 用VC++6.0不行的吗
6的不行啊 这个题叼的不行啊 请叫我大魔王 发表于 2018-9-17 22:20
用VC++6.0不行的吗
我就是用6.0写的,是可以运行的,你看我贴的最后一张图。 先收藏,洗完澡来操作 这个for循环是不是少了好多中括号???? 支持楼主,加油 天呐,完全懵逼,一点儿头绪都没有{:301_973:}