旧键盘打字(C语言简单实现)

旧键盘寻找坏键(c语言)(简化版)(简单实现)

此题可以看作是pat旧键盘的简化版
看似简单实则陷阱很多
在这里插入图片描述

陷阱一大小写的判断

在我们进行字符的判断时大小写是不同的字符而在键盘上确实一样的键所以在我们经行判断以前我们要把大小写转化成一个标准
这里推荐转成大写因为本题的要求是最后的结果转换成大写输出
代码如下

    char a[90];
    char b[90];
    char c[90];
    int i,j,k,n=0,h,l;
      scanf ("%s%s",a,b);
    k=strlen(a);
    for(l=0;l<k;l++){
        if(a[l]>='A'&&a[l]<='Z')
        a[l]=a[l]+32;
    }
    for(i=0,j=0;i<k;i++){
        if (NULL==strchr(b,a[i])){
            if(NULL==strchr(c,a[i])){
            c[j]=a[i];
            j++;
            h=j;}
        }}

        for(n=0;n<h;n++){
            if (c[n]>='a'&&c[n]<'z')
            c[n]=c[n]-32;
          
            printf ("%c",c[n]);
        

陷阱二 空格的输入输出

如果你最后使用printf输出最后的字符就有可能在字符中间空格有无法输出完整字符的情况于是上述代码使用了以此字符输出的形式以解决问题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
金山打字游戏是一款经典的打字练习软件,通过反复练习可以提高打字速度和准确性。以下是一个简单C语言实现金山打字游戏的示例代码,供您参考: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define WORDS_NUM 10 // 单词数量 #define WORDS_LEN 20 // 单词长度 char words[WORDS_NUM][WORDS_LEN] = { // 单词列表 "apple", "banana", "cherry", "orange", "lemon", "grape", "watermelon", "peach", "pear", "pineapple" }; void shuffle_words() { // 打乱单词顺序 srand(time(NULL)); for (int i = WORDS_NUM - 1; i > 0; i--) { int j = rand() % (i + 1); char temp[WORDS_LEN]; strcpy(temp, words[i]); strcpy(words[i], words[j]); strcpy(words[j], temp); } } int main() { char input[WORDS_LEN]; int score = 0; shuffle_words(); // 打乱单词顺序 for (int i = 0; i < WORDS_NUM; i++) { printf("Type the word: %s\n", words[i]); scanf("%s", input); if (strcmp(input, words[i]) == 0) { printf("Correct!\n"); score++; } else { printf("Wrong! The correct word is: %s\n", words[i]); } } printf("Your score is: %d\n", score); return 0; } ``` 该程序首先定义了一个包含10个单词的数组,并通过`shuffle_words()`函数打乱了单词顺序。接着,在主函数中循环输出每个单词并等待用户输入,如果用户输入的单词与正确答案相同则加分,否则输出正确答案并继续下一轮。最后输出用户的得分。 该程序仅为示例代码,您可以根据自己的需要进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值