为什么会停止输入?for(n=0; cin>>num[n]; n++);
#include <stdlib.h>
#include <iostream.h>
int compare(const void *arg1,const void *arg2);
void main(void)
{
const int max_size=10; // 数组允许元素的最大个数
int num[max_size]; // 整型数组
// 从标准输入设备读入整数,同时累计输入个数
// 直到输入的是非整型数据为止
int n;
for(n=0; cin>>num[n]; n++);
// C标准库中的快速排序(quick-sort)函数
qsort(num,n,sizeof(int),compare);
// 将排序结果输出到标准输出设备
for (int i=0;i<n;i++)
cout<<num[i]<<"\n";
}
// 比较两个数的大小
// 如果*(int *)arg1比*(int *)agr2小,则返回-1
// 如果*(int *)arg1比*(int *)agr2大,则返回1
// 如果*(int *)arg1等于*(int *)agr2,则返回0
int compare(const void *arg1,const void *arg2)
{
return (*(int *)arg1 <*(int *)arg2)?-1:(*(int *)arg1>*(int *)arg2?1:0);
}
各位老大帮我解释一下,为什么执行到for(n=0; cin>>num[n]; n++);时,输入的是非整数,就会停止输入?