考考你:输入数字,判定空格和回车

本文介绍了一个C语言编程问题的解决方案,即如何通过键盘输入一系列数字,并将其存储到int数组中。难点在于如何区分数字、空格及回车等输入。文中提供了一段示例代码,该代码使用了while循环和scanf函数来实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

    最近遇到一个编程问题,想了好久,把它整理为一个c语言的题目考考大家,先不要觉得这个题目很简单,不看答案做着看看吧。

    题目:用c实现,以空格为分割,以回车为结束标记,输入一串数字到一个int数组中。

    例如

    int data[40];

    输入: 11 12 22 33 44 55 66 77 88 99(回车)

    结果: 数组data的第0~9号元素依次被赋值为上述值,打印出来,然后程序正常退出。

    难点分析

    当然,获取int型数字的输入不难,scanf("%d",&data[i])即可,关键是怎么样判定用户输入的是数字、空格还是回车,以int型来获取输入,则只能得到int值,以char型获取输入则只能得到char值,不能得到int数据。

----------------------------------------------------------------------------------------------

    【答案】:

    完整的c语言代码如下所示:

  1. #include <stdio.h> 
  2.  
  3. void main() 
  4.     int data[40]; 
  5.     int i = 0; 
  6.     int pos = 0; 
  7.  
  8.     printf("please input a series num:\n"); 
  9.  
  10.     while(1) 
  11.     { 
  12.         scanf("%d",&data[pos++] ); 
  13.         if( getchar() == '\n'
  14.         { 
  15.             break
  16.         } 
  17.     } 
  18.  
  19.     for( i=0 ; i<pos; i++) 
  20.     { 
  21.         printf("%d ",data[i]); 
  22.     } 
  23.  
  24.     printf("\n"); 

 

    你能说出其中的原理吗?你有更好地解决方案吗?欢迎留言交流。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值