※ 引述《williams7442 ()》之铭言:
: p=(char *)strtok(str," ");
: if(p!=NULL)
: arr[0]=atoi(p); /*atoi(p)将字串常数转为整数*/
: //arr[0]=atoi(p) 例如输入:5 4 3 9 只读到5?
Yes
: i=1;
: while(p!=NULL){
: p=(char *)strtok(NULL," "); //分别读取 4 3 9
: if(p!=NULL){
: arr[i]=atoi(p); //arr[1]=4 arr[2]=3 arr[4]=9 是这个意思?
Yes
: i++;
: }
: }
: num=i; //i=4,输入4个数字
: min=32767;
: max=0;
: //怎么不设成min=0;max=32767;
: tem=0;
: for(i=0;i<num;i++){
: if(arr[i]>max)
: max=arr[i];
: if(arr[i]<min)
: min=arr[i];
: tem+=arr[i];
: } //for到 }这有点一头雾水,这是什么意思?
这一段是在取arr中的最大值与最小值
只要找到比min小的就更新min
max同理
所以你一开始把min设成0请问你要找谁跟他比小...
: 这个程式输入 1 46325
: 46325大概在超出一点点会让标准差的平方(方差) 超过5XXXX-XXXX约9位数字
: int不是至少2147483647吗? 10位数字
int最大就是2147483647, 也就是2的32次方减1
32767是2的16次方减1
再上去的数字这支程式都会爆炸
因为arr[i]*arr[i]这项会大过2147483647
想用就请改型态