请高人用C语言编写一个做选择题的小程序,满意另有加分!

2025-04-27 11:32:56
推荐回答(4个)
回答1:

#include
#define MaxLen 4
void main()
{
int i=0;//题号
int count[MaxLen];//记录选项被选的次数
char ch;//题目选项
for(int j=0;j count[j]=0;
printf("请输入您的选项<选项在ABCD中>,输入#结束输入\n");
printf("第%d题:\n",++i);
scanf("%c",&ch);
getchar();//接收键盘输入的空格
while(1)
{
if(ch=='#')//输入#直接跳出
break;

printf("第%d题:\n",++i);
switch(ch)
{
case 'A':
case 'a':
count[0]++;
break;
case 'B':
case 'b':
count[1]++;
break;
case 'C':
case 'c':
count[2]++;
break;
case 'D':
case 'd':
count[3]++;
break;
default:
printf("对不起您的输入不正确,请重新输入");//输入不正确时重新输入
i--;//题号还原
break;
}

printf("请输入您的选项<选项在ABCD中>\n");
scanf("%c",&ch);
getchar();//接收键盘输入的空格
}
printf("A被选%d次,B被选%d次,C被选%d次,D被选%d次\n",count[0],count[1],count[2],count[3]);//输出abcd被选的次数

}

回答2:

#include
#define MaxLen 4
void main()
{
int i=0;//题号
int count[MaxLen];//记录选项被选的次数
char ch;//题目选项
for(int j=0;j count[j]=0;
printf("请输入您的选项<选项在ABCD中>,输入#结束输入\n");
printf("第%d题:\n",++i);
scanf("%c",&ch);
getchar();//接收键盘输入的空格
while(1)
{
if(ch=='#')//输入#直接跳出
break;

printf("第%d题:\n",++i);
switch(ch)
{
case 'A':
case 'a':
count[0]++;
break;
case 'B':
case 'b':
count[1]++;
break;
case 'C':
case 'c':
count[2]++;
break;
case 'D':
case 'd':
count[3]++;
break;
default:
printf("对不起您的输入不正确,请重新输入");//输入不正确时重新输入
i--;//题号还原
break;
}

printf("请输入您的选项<选项在ABCD中>\n");
scanf("%c",&ch);
getchar();//接收键盘输入的空格
}
printf("A被选%d次,B被选%d次,C被选%d次,D被选%d次\n",count[0],count[1],count[2],count[3]);//输出abcd被选的次数

}
绝对好使在Vc下编译通过 希望能够帮助您

回答3:

#include
#include
#include
#include

int main(int argc, char **argv)
{
int a_count = 0, b_count = 0, c_count = 0, d_count = 0;
int i = 1;
int flag = 0;
char* answer;
while (1) {
flag = 0;
printf("input question No. %d answer:", i++);
answer = gets();
switch (answer[0]) {
case 'a':
a_count++;
break;
case 'b':
b_count++;
break;
case 'c':
c_count++;
break;
case 'd':
d_count++;
break;
case 'n':
flag = 1;
break;
default:
i--;
printf("sorry, you input error, input again\n");
break;
}
if (flag == 1) break;
answer = gets();
}

printf("a:%d\nb%d\nc%dd%d\n", a_count, b_count, c_count, d_count");

return 0;
}

回答4:

#include

char question(int i,char q[])
{
char answer;
A:printf("%d、question %d\n%s\n请答题:",i,i,q);
scanf("%c",&answer);
if((answer>='a'&&answer<='d')||(answer>='A'&&answer<='D'))
return answer;
else
{
printf("no");
goto A;
}
}

void main()
{
int i;
char que[100];//问题和选项
char CountA=0,CountB=0,CountC=0,CountD=0;//计数a、b、c、d被选的次数
for(i=0;i<100;i++)
{
if(question(i,que[i])=='a'||question(i,que[i])=='A')
CountA++;
else if(question(i,que[i])=='b'||question(i,que[i])=='B')
CountB++;
else if(question(i,que[i])=='c'||question(i,que[i])=='C')
CountC++;
else if(question(i,que[i])=='d'||question(i,que[i])=='D')
CountD++;
}

printf("A被选%d次,B被选%d次,C被选%d次,D被选%d次\n",CountA,CountB,CountC,CountD);
}