zoukankan      html  css  js  c++  java
  • 打字系统

          要求写一个打字系统(所要打的字均为字母),6个人可以进行打字练习 ,并且要求程序输出每个人的分数 、错误个数,正确个数以及排名,代码需要用c语言,共100个字符每个一分。

    1、所要求的代码为c语言,所以肯定要用结构体,结构体中需要包含姓名,成绩、正确个数、错误个数这几个变量,做个结构体数组。

    2、每个人所要打的字符都是随机的,所以要使用rand函数,此程序的头文件必须有#include<stdio.h> #include<time.h>  #include<stdlib.h>这三个。

    3、对于随机产生的字符需要用rand()%26+97   这个数据,因为rand函数随时间的变化所以头文件必须有#include<time.h>这个  ,不然结果你们可以试试 ,嘿嘿。

    4、要说这个程序最难的一点也要到了,不是检测正确个数、错误个数、所得分数、而是排序,如果没有一些思路,这可能会终结你这个程序。

    5、对于一个结构体数组中的一个变量排序,不改变下表,能排完序后还能得到其他变量,这点可谓不难,有的人想着这有什么难的,so easy用个结构体就行了,   but  我想说,you can you try ,no can no bb  当两个结构体数组放在一起时,其中的琐碎关系能让人恶心的不想吃饭,说了这么多了,我就说说我的简单方法吧,不用结构体,用个数组就行,

    把变量放在一个数组中,把它的下标放在一个数组中,这样两个就联系起来,变量交换,下标交换。同步就行。

    以下是程序代码:

    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    int main()
    {
     struct user
     {
      char name[20];
      int score;
      int trues;
      int errors;
     }a[6];
     int w[2][6];
     char b[100],c[100];
     int i,j,k,l1=0,l2=0,m,n;
     j=0;k=0;
     srand((unsigned)time(NULL));
     for(i=0;i<6;i++)
     {
      m=i;
      printf("请输入姓名: ");
      scanf("%s",a[i].name);
         printf("请进行打字练习 ");
            for(i=0;i<10;i++)
      {
       b[i]=rand()%26+97;
          printf("%c",b[i]);
      }
         printf(" ");
         scanf("%s",c);
         for(i=0;i<100;i++)
      {
       if(b[i]==c[i])
        j=j+1;
          else
        k=k+1;
      }
      i=m;
      a[i].score=j*1;
      a[i].trues=j;
      a[i].errors=k;
      j=0;k=0;
     }
     for(n=0;n<2;n++)
     {
      if(n==0)
      {
       for(i=0;i<6;i++)
       {
        w[n][i]=a[i].score;
       }
      }
      else
      {
       for(i=0;i<6;i++)
       {
        w[n][i]=i;
       }
      }
     }
     for(i=0;i<5;i++)
     {
      for(m=i+1;m<6;m++)
      {
       if(w[0][m]>w[0][i])
       {   l1=w[0][i];
        w[0][i]=w[0][m];
        w[0][m]=l1;
        l2=w[1][i];
                 w[1][i]=w[1][m];
        w[1][m]=l2;
       }
      }
     }
     printf("各人成绩为: ");
     for(i=0;i<6;i++)
     {
      printf("第%d名成绩: ",i+1);
            printf("姓名:%s 分数:%d 正确个数:%d 错误个数:%d ",a[w[1][i]].name,a[w[1][i]].score,a[w[1][i]].trues,a[w[1][i]].errors);
     }
     return 0;
    }

    懂了的, 顶一下下,谢谢,☺。

    不为其他,只为快乐!
  • 相关阅读:
    CentOS6找回root密码
    Python3——装饰器及应用(这个属于详细的)
    python3 类的相关内容
    python--- 解释‘yield’和‘Generators(生成器)
    Python 基本类型:元组,列表,字典,字符串,集合 梳理总结
    python3 推导式大总结
    Python3 的描述符--完整例子详细解释
    类 Class 对象、定义、方法
    Python3基础 __repr__ 类的实例对象的名字 可以打印文字(2)
    Python3基础 __repr__ 类的实例对象的名字 可以打印文字(1)
  • 原文地址:https://www.cnblogs.com/1521299249study/p/4630992.html
Copyright © 2011-2022 走看看