当用户选择是的时候,就循环。直到用户选择否的时候停止
如何让电脑随机出题?
如何在C里面来产生随机数
rand:能产生随机数,z这个函数必须要加入头文件
include "windows.h"
格式:rand()%(大数-小数)+小数
rand()%90+10 //产生一个10到100的随机数
如何来确保,每次运行程序所产生的随机数都不一样
srand((unsigned)time(NULL));
这个代码只需要执行一次
srand((unsigned)time(NULL));
for(int i=1;i<20;i++)
{
int n= rand()%90+10;
printf("%6d",n);
}
算法分析:
1、要产生随机的两个两位数
int a1,a2,key,answer,right,error,temp;
srand((unsigned)time(NULL));
a1=rand()%90+10;
a2=rand()%90+10;
2、运算符也要随机
A:首先也产生一个随机数,
如果是奇数就用+,偶数用 -
temp=rand()%90+10;
if(temp%2==0)
oper=='+';
key=a1+a2;
else
{
oper=='-';
if(a1<a2)//确保a1大于a2,不要出现负数
{
temp=a1;
a1=a2;
a2=temp;
}
key=a1-a2;
}
3、 产生正确答案:
最好是在运算符产生的时候,就产生正确答案。
4、把题目显示在屏幕上
printf("%d%c%d=",a1,oper,a2);
5、让用户来作答
scanf("%d",&answer);
6、判断是否正确
if(key==answer)
{
printf("你答对了!");
right++;
}else{
printf("你答错了!");
error++;
}
让用户输入用户名和密码如果正确的话,就可以使用程序,如果错误,就不断提示,用户名或密码错误请重新输入
如何让电脑随机出题?
如何在C里面来产生随机数
rand:能产生随机数,z这个函数必须要加入头文件
include "windows.h"
格式:rand()%(大数-小数)+小数
rand()%90+10 //产生一个10到100的随机数
如何来确保,每次运行程序所产生的随机数都不一样
srand((unsigned)time(NULL));
这个代码只需要执行一次
srand((unsigned)time(NULL));
for(int i=1;i<20;i++)
{
int n= rand()%90+10;
printf("%6d",n);
}
算法分析:
1、要产生随机的两个两位数
int a1,a2,key,answer,right,error,temp;
srand((unsigned)time(NULL));
a1=rand()%90+10;
a2=rand()%90+10;
2、运算符也要随机
A:首先也产生一个随机数,
如果是奇数就用+,偶数用 -
temp=rand()%90+10;
if(temp%2==0)
oper=='+';
key=a1+a2;
else
{
oper=='-';
if(a1<a2)//确保a1大于a2,不要出现负数
{
temp=a1;
a1=a2;
a2=temp;
}
key=a1-a2;
}
3、 产生正确答案:
最好是在运算符产生的时候,就产生正确答案。
4、把题目显示在屏幕上
printf("%d%c%d=",a1,oper,a2);
5、让用户来作答
scanf("%d",&answer);
6、判断是否正确
if(key==answer)
{
printf("你答对了!");
right++;
}else{
printf("你答错了!");
error++;
}
基础的循环结构
char answer;
do{
printf("*\n"); //加入想要的代码
printf("要继续吗(y/n):");
answer=getchar();
getchar();//消化掉回车键,不然程序执行出错
}while(answer =='y')
程序实现:
int a1,a2,temp,key,useranswer,right=0,error=0;
char oper,answer;
do{
srand((unsigned)time(NULL));//让每次执行产生的随机数不同
a1= rand()%90+10;
a2= rand()%90+10;
temp=rand()%90+10;
if(temp%2==0)//使用奇偶数来决定加减法
{
oper='+';
key=a1+a2; //在产生运算符的时候就算出答案
}
else
{
oper='-';
if(a1<a2) //用交换算法来避免出现负数
{
temp=a1;
a1=a2;
a2=temp;
}
key=a1-a2;
}
printf("请输入答案");
printf("%d%c%d=",a1,oper,a2);
scanf("%d",&useranswer);
getchar();//消化掉一个回车
if(key==useranswer) //这里不要写成=赋值符号
{
printf("恭喜你答对了!\n");
right++;
}
else
{
printf("遗憾你答错了!\n");
error++;
}
printf("要继续吗(y/n):");
answer=getchar();//消化掉回车键
getchar();//消化掉回车键,不然程序执行出错
}while(answer =='y');
printf("你答对了%d道题,答错了%d道题\n",right,error);
让用户输入用户名和密码如果正确的话,就可以使用程序,如果错误,就不断提示,用户名或密码错误请重新输入
循环产生三角形,n控制三角形的行数
void main()
{
int n,i,j,k;
char answer;
do{
printf("请输入一个整数");
scanf("%d",&n);
getchar();//消化掉回车键,这里很重要。
for(j=1;j<=n;j++)
{
for(i=1;i<=40-j;i++)
{
printf(" ");
}
for(k=1;k<=2*j-1;k++)
{
printf("*");
}
printf("\n");
}
printf("要继续吗(y/n):");
answer=getchar();//消化掉回车键
getchar();//消化掉回车键,不然程序执行出错
}while(answer =='y');
选择循环
do{
printf("请输入一个整数");
scanf("%d",&n);
getchar();//消化掉回车键,这里很重要。
//要循环执行的代码
printf("要继续吗(y/n):");
answer=getchar();//消化掉回车键
getchar();//消化掉回车键,不然程序执行出错
}while(answer =='y');