让电脑随机来产生两位数的加减法,然后让用户来选择是否继续作答,如果选择是表示可以继续作答 当用户作答完毕后,要输出答对了几道,答错了几道。

当用户选择是的时候,就循环。直到用户选择否的时候停止
 如何让电脑随机出题?
 如何在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');

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aFakeProgramer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值