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;
    }

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

    不为其他,只为快乐!
  • 相关阅读:
    eclipse历史版本下载地址
    注解@SuppressWarnings
    VB创建文件夹
    VB学习生成JavaBean
    C++下的强制转换类型
    Django扩展
    数据查询操作
    深入剖析C++多态、VPTR指针、虚函数表
    快速排序一步一步优化
    cookie与session
  • 原文地址:https://www.cnblogs.com/1521299249study/p/4630992.html
Copyright © 2011-2022 走看看