数组\用数组做散列计算——一点小疑惑

简介: 数组\用数组做散列计算——一点小疑惑

在用使用循环的过程中,我发现输入值对于字母的输入很难判断并给予合适的返回

比如下面的代码(虽然进行了一定程度的改进),允许一次误触,但之后再输入字母还是会死循环,最后强制退出

我尝试了清空缓存区,但效果不大(难道是我的姿势不对?)

希望有好心的大佬看到以后指点一下【狗头】

#include<stdlib.h>
#include<stdio.h>
 
int main()
{
  const int num=10; //必须是常量,否则报错
  int x,i=0;
  int count[num];   //定义的常量在这使用 //定义数组
  for(int i=0;i<num;i++)
  {
    count[i]=0;     //初始化数组
  }
  printf("###误触字母一次可以,别瞎敲谢谢###\n");
  printf("请输入:");
  scanf("%d",&x);
  while(x!=-1)
  {
    if(x>=0 && x<=9)
    {
      count[x]++;
      printf("请输入:");
      scanf("%d",&x);
    }
    else
    {
      fflush(stdin);
      //对输入流进行清空缓存区,这样就能输入字母后再次返回
      printf("请重新输入:");
      scanf("%d",&x);
    }
    fflush(stdin);  //这里再清空一次
    int x=NULL;
  }
  for(i=0;i<num;i++)
    printf("%d:%d\n",i,count[i]);
 
  system("pause");
  return 0;
}


目录
相关文章
|
6月前
|
设计模式 算法 Java
【数据结构和算法】寻找数组的中心下标
给你一个整数数组nums,请计算数组的中心下标。 数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个中心下标,应该返回最靠近左边的那一个。如果数组不存在中心下标,返回-1。
96 0
|
5月前
|
索引
力扣随机一题 6/26 哈希表 数组 思维
力扣随机一题 6/26 哈希表 数组 思维
36 0
|
6月前
|
算法 程序员 测试技术
【数据结构-哈希表 一】【原地哈希】:缺失的第一个正整数
【数据结构-哈希表 一】【原地哈希】:缺失的第一个正整数
72 0
数组的简单认识及其学习(二)
数组的简单认识及其学习(二)
65 0
|
6月前
|
存储 算法 Java
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
85 0
|
6月前
|
人工智能
LeetCode刷题Day07——哈希表(n数之和、数组交集)
常见的三种哈希结构: 数组 set(集合) map(映射) 数组对于那些知道长度的题目比较适宜,因为map的空间消耗要比数组的大,所以有的时候用数组更贱简单有效。但是数组的大小是有限的,受到系统栈空间(不是数据结构的栈)的限制。如果数组空间够大,但哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费,这时候可以考虑采用set。set是一个集合,里面放的元素只能是一个key,而有的题目还需要记录一些额外的信息,如下标或出现次数,这时候可以考虑用map。
|
算法 测试技术 C#
C++算法:找出数组的第 K 大和原理及实现
C++算法:找出数组的第 K 大和原理及实现
数组的简单认识及其学习(一)
数组的简单认识及其学习(一)
57 0