在C語言陣列處理的時候發現鍵入的變數竟然會自己發生了變化,吃驚的我趕緊跑過來問問有沒有人知道怎么回事?
代碼目的是求不小于num的所有數
代碼如下
#include <stdio.h>
int main()
{
int n=0,i;
double b[12]={5,0.3,0.2,1,0.9,3,7,15,10,13,0.1,2},a[n];
double num;
scanf("%lf",&num);
for(i=0;i<12;i++)
{
if(b[i]>=num)
{
a[n++]=b[i];
}
printf("這個倒霉的num變成了%lf\n",num);
}
for(i = 0; i<n; i++)
printf("%.1f ", a[i]);
return 0;
}
最后如果鍵入0.5的話結果是
這個倒霉的num變成了0.500000
這個倒霉的num變成了0.500000
這個倒霉的num變成了0.500000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
這個倒霉的num變成了1.000000
5.0 1.0 3.0 7.0 15.0 10.0 13.0 2.0
uj5u.com熱心網友回復:
把 a[n] 改成a[12]uj5u.com熱心網友回復:
陣列a定義太小, 當代碼充填陣列a元素個數超過定義大小時, 將覆寫并修改鄰近的num值.uj5u.com熱心網友回復:
a陣列的長度需要事先定義好,C語言不支持可變陣列長度的。uj5u.com熱心網友回復:
n=0a[n]
是什么鬼?
uj5u.com熱心網友回復:
學校還沒修改課本?未定義會發生詭異。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281474.html
標籤:C語言
上一篇:fatal error: 'stdlib.h' file not found相關問題
下一篇:求助貼 c++
