航空公司地勤的工资:大家帮忙看下下面的程序,运行的时候,在调用Tool函数的时候,Tool函数中的scanf不正常运行,

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/17 07:40:38
#include"stdio.h"
#include"conio.h"
#include "stdlib.h"
static char answer[10];
static int i=0;
static char *p;
static int result=0;
void main()
{
p=answer;
void Tool();
void Exam();
void check();
void keys();
printf(" ---☆欢迎进入考试系统☆----\n");
printf(" 预祝你取得好成绩\n\n");
printf("下面计算机为你选题,请稍等...\n\n");
Exam();
check();
keys();
}
void Tool()
{
printf("请选择__");
scanf("%c",&answer[i]);
i++;
system("cls");
}
void Exam()
{
printf("(*)本次考试分为选择题和填空题两大题\n\n");
printf("一、选择题。(每题5分,共10题)\n");
printf("%d.计算机病毒是指()\nA.带细菌的磁盘 B.已损坏的计算机部件\nC.具有破坏性的无文件名的程序 D.被破坏了的程序\n",i+1);
Tool();
printf("\n%d.某片软盘上已染有病毒,为防止该病毒传染计算机系统,正确的措施是( )\nA.删除软盘上所有程序即删除病毒 B.在该软盘缺口处贴上写保护\nC.将软盘重新格式化 D.将软盘放一段时间再使用\n",i+1);
Tool();
printf("\n%d.计算机病毒会造成计算机( )的损坏.\nA.硬件和软件 B.硬件、软件和数据\nC.磁盘、显示器、打印机的损坏 D.硬件和数据\n",i+1);
Tool();
printf("\n%d.确定一个程序是否是计算机病毒的首要条件是?\nA.破坏性 B.传染性 C.隐藏性 D.潜伏性\n",i+1);
Tool();
printf("\n%d.具有多媒体功能的微机常用的CD-ROM作为外存储设备,它是()\nA.随机存储器 B.只读光盘存储器\nC.只读硬磁盘 D.只读大容量软磁盘\n",i+1);
Tool();
printf("\n%d.微型计算机的主机是由()\nA.运算器和控制器组成的 B.运算器、控制器和内存储器组成的\nC.运算器、控制器、内存储器以及键盘和显示器组成的 D.CPU和外设组成的\n",i+1);
Tool();
printf("\n%d.微型计算机系统的CPU通常是指 ( )\nA.内存储器和控制器 B.内存储器和计算器\nC.内存储器、控制器和运算器 D.控制器和运算器\n",i+1);
Tool();
printf("\n%d.计算机的内存储器可分为 ()\nA.随机存储器和只读存储器 B.软盘和硬盘\nC.光盘和软盘 D.随机存储器和光盘\n",i+1);
Tool();
printf("\n%d.决定微机性能的主要是()\nA.价格 B.中央处理器 C.控制器 D.质量\n",i+1);
Tool();
printf("\n%d.运算器的主要功能是()\nA.逻辑运算 B.算术运算 C.算术与逻辑运算 D.初等函数运算\n",i+1);
Tool();
}
int check()
{
char show;
printf("请检查一下你的答案,是否有需要改动的\n请选择__(有,输入'Y';若无,输入'N')\n");
scanf("%c",&show);
if(show=='n')
return(0);
else {
printf("请输入要修改的题号_");
scanf("%d",&i);
printf("\n请输入新的选项_");
scanf("%c",&answer[i-1]);
}
check();
}
void keys()
{
char key[]={'c','d','b','a','a','b','c','c','c','a'};
for(i=0;i<=9;i++)
{
if(key[i]==answer[i])
result++;
}
}
希望大家帮忙看看
主要问题就是,在调用Tool函数的时候,第一次调用没问题,可第二次调用的时候,Tool函数中的scanf就不正常运行了,同理,第三次正常,第四次不正常。。。。。

这是我稍微修改过的,虽然还没有个功能没实现,但希望能帮到你吧!
#include"stdio.h"
#include"conio.h"
#include "stdlib.h"
char answer[10];
int i=0;
char *p;
int result=0;

void Tool();
void Exam();
int check();
void keys();

void main()
{
p=answer;

printf(" ---☆欢迎进入考试系统☆----\n");
printf(" 预祝你取得好成绩\n\n");
printf("下面计算机为你选题,请稍等...\n\n");
Exam();
check();
keys();
printf("\nresult=%d\n",result) ;
for(i=0;i<10;i++)
printf("%c\t",answer[i]);

}
void Tool()
{
printf("请选择__");
scanf("%c",&answer[i]);
i++;
system("cls");
}
void Exam()
{
printf("(*)本次考试分为选择题和填空题两大题\n\n");
printf("一、选择题。(每题5分,共10题)\n");
printf("%d.计算机病毒是指()\nA.带细菌的磁盘 B.已损坏的计算机部件\nC.具有破坏性的无文件名的程序 D.被破坏了的程序\n",i+1);
Tool();
printf("\n%d.某片软盘上已染有病毒,为防止该病毒传染计算机系统,正确的措施是( )\nA.删除软盘上所有程序即删除病毒 B.在该软盘缺口处贴上写保护\nC.将软盘重新格式化 D.将软盘放一段时间再使用\n",i+1);
Tool();
printf("\n%d.计算机病毒会造成计算机( )的损坏.\nA.硬件和软件 B.硬件、软件和数据\nC.磁盘、显示器、打印机的损坏 D.硬件和数据\n",i+1);
Tool();
printf("\n%d.确定一个程序是否是计算机病毒的首要条件是?\nA.破坏性 B.传染性 C.隐藏性 D.潜伏性\n",i+1);
Tool();
printf("\n%d.具有多媒体功能的微机常用的CD-ROM作为外存储设备,它是()\nA.随机存储器 B.只读光盘存储器\nC.只读硬磁盘 D.只读大容量软磁盘\n",i+1);
Tool();
printf("\n%d.微型计算机的主机是由()\nA.运算器和控制器组成的 B.运算器、控制器和内存储器组成的\nC.运算器、控制器、内存储器以及键盘和显示器组成的 D.CPU和外设组成的\n",i+1);
Tool();
printf("\n%d.微型计算机系统的CPU通常是指 ( )\nA.内存储器和控制器 B.内存储器和计算器\nC.内存储器、控制器和运算器 D.控制器和运算器\n",i+1);
Tool();
printf("\n%d.计算机的内存储器可分为 ()\nA.随机存储器和只读存储器 B.软盘和硬盘\nC.光盘和软盘 D.随机存储器和光盘\n",i+1);
Tool();
printf("\n%d.决定微机性能的主要是()\nA.价格 B.中央处理器 C.控制器 D.质量\n",i+1);
Tool();
printf("\n%d.运算器的主要功能是()\nA.逻辑运算 B.算术运算 C.算术与逻辑运算 D.初等函数运算\n",i+1);
Tool();
}
int check()
{
char show;
printf("\n请检查一下你的答案,是否有需要改动的\n请选择__(有,输入'Y';若无,输入'N')\n");
scanf("%c",&show);
if(show=='n')
return(0);
else {
printf("\n请输入要修改的题号_");
scanf("%d",&i);
printf("\n请输入新的选项_");
scanf("%d",answer[i+1]);
}
check();
}
void keys()
{
char key[]={'c','d','b','a','a','b','c','c','c','a'};
for(i=0;i<=9;i++)
{
if(key[i]==answer[i])
result++;
}
}