题目:用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语言代码如下所示:
- #include <stdio.h>
- void main()
- {
- int data[40];
- int i = 0;
- int pos = 0;
- printf("please input a series num:\n");
- while(1)
- {
- scanf("%d",&data[pos++] );
- if( getchar() == '\n')
- {
- break;
- }
- }
- for( i=0 ; i<pos; i++)
- {
- printf("%d ",data[i]);
- }
- printf("\n");
- }
你能说出其中的原理吗?你有更好地解决方案吗?欢迎登录乐搏学院留言交流。