本文目錄一覽:
- 1、C語言 將一個4*4的二維數組的周邊元素置為0.
- 2、c語言 一個二維數組 如何設定[0][b]=0,[a][0]=0 而不使得所有數據都為零
- 3、c語言中怎麼給一個行和列都是100的二維數組都賦0值
- 4、C語言怎麼創建一個二維數組?
- 5、用c++將二維數組(5行5列)的右上半部分置零。
- 6、c語言二維數組
C語言 將一個4*4的二維數組的周邊元素置為0.
#include stdio.h
#include string.h
#define SIZE_ 4
void fun(int a[][SIZE_])
{
int(*w)[SIZE_] = a;
for (int i = 0; i SIZE_; i++)
{
if (i == 0 || i == SIZE_ – 1)
memset(w, 0, sizeof(*w));
else
{
(*w)[0] = 0;
(*w)[SIZE_ – 1] = 0;
}
w++;
}
}
int main()
{
int a[SIZE_][SIZE_] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
fun(a);
for (int i = 0; i SIZE_; i++)
{
for (int i1 = 0; i1 SIZE_; i1++)
{
printf(“%d “, a[i][i1]);
}
printf(“\n”);
}
return 0;
}
c語言 一個二維數組 如何設定[0][b]=0,[a][0]=0 而不使得所有數據都為零
不知你用的什麼編譯器,不是VC,在VC中不允許中間聲明變量,只能在函數開始時聲明變量。有的編譯器的C版本可以在中間定義變量。
#include stdio.h
#include conio.h
#define note 4
#define time 10
#define k 1.0
#define c 2.0
#define p 5.0
#define t 0.1
#define x 0.33
void main()
{
float r=(k*t)/(c*p*x*x);
float temp[note][time]={0};
int a,b,j,m,i,n;
for(a=0;anote;a++)
{
temp[a][0]=0;
}
//就是這裡 我想設置[0][b]=0,[a][0]=0 可是這個代碼出來後全都是零 除了[note-1][b]=100 我猜想問題出在重複定義了temp[a][0]=0;temp[0][b]=0;但是不會改 求大神指教。。。
for(b=0;btime;b++)
{
temp[0][b]=0;
temp[note-1][b]=100;
}//邊界條件(T(1.0,t)=100)
for(j=1;j=time;j++)
{
for(i=1;i=note-2;i++)
{
temp[i][j]=r*(temp[i+1][j-1]-2*temp[i][j-1]+temp[i-1][j-1])+temp[i][j-1];
}
}//運算公式
printf(“There are %d note\nthe temp of the notes is((note,time)):\n”,note,time);
for(m=0;m=note-1;m++)
{
for(n=0;ntime;n++)
{
printf(“(%d,%d)=%.2f\n”,m,n,temp[m][n]);
}
printf(“\n”);
}
system(“pause”);
}
我的結果如下沒看出什麼問題
c語言中怎麼給一個行和列都是100的二維數組都賦0值
有兩種方法可以做到。
一、循環賦值。
對每一項分別賦值為0。對於二維數組一般用雙重循環,實際上用單重循環也可以,效率上並無區別。
參考代碼:
TYPE a[100][100];
int i,j;
for(i = 0; i 100; i ++)
for(j = 0; j 100; j ++)//雙重循環遍歷。
a[i][j] = 0; //每個賦值為0。
二、整體置零。
在C庫函數中,有memset這一個函數,形式為
/* Set N bytes of S to C. */
void *memset (void *s, int c, size_t n);
功能為,在地址s指向的內存單元開始,將c個位元組的空間,每個都賦值為c。
這個函數是按位元組賦值的,所以對於賦值0值,可以直接將整個內存空間清零。
參考代碼:
TYPE a[100][100];
memset(a, 0, sizeof(a));//整體清0.
第一種方法更具通用性,後一種方法不是永遠適合,但在可以用memset的情況下,後一種方法更高效。
C語言怎麼創建一個二維數組?
C語言中,如何手動輸入二維數組?c語言的數組是非常重要的內容,特別是二維數組的內容,所以今天就由小編來為大家介紹c語言怎麼創建一個二維數組。
工具原料c語言電腦
方法/步驟分步閱讀
1
/6
第一首先在電腦上打開c語言編程軟件。
然後創建項目。
2
/6
第二然後導入stdio.h和stdlib包。
再加入malloc包。
3
/6
第三然後定義五個參數。
再創建其中兩個參數的空間。
4
/6
第四然後用for語句進行循環。
再用scanf語句進行接收輸入到二維數組。。
5
/6
第五然後用兩個for語言循環。
再輸出二維數組的數值。
6
/6
第六然後用printf語句進行數據輸出分格。
這樣一個二維數組就創建成功了。
注意事項
個人經驗,僅供參考。
內容僅供參考並受版權保護
擴展內容:
二維數組:
二維數組本質上是以數組作為數組元素的數組,即「數組的數組」,類型說明符 數組名[常量表達式][常量表達式]。二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。
二維數組A[m][n],這是一個m行,n列的二維數組。設a[p][q]為A的第一個元素,即二維數組的行下標從p到m+p,列下標從q到n+q,按「行優先順序」存儲時則元素a[i][j]的地址計算為:LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t,按「列優先順序」存儲時,地址計算為:LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t,存放該數組至少需要的單元數為(m-p+1) * (n-q+1) * t 個位元組。
用c++將二維數組(5行5列)的右上半部分置零。
用c++將二維數組的右上半部分置零需要編程中輸入二維數組值,可以先自定義一個函數,用函數實現數組值的輸入,具體方法為:
1、首先,定義一個常量SIZE,控制數組大小。
2、定義一個自定義函數,用來輸入二維數組各元素的值。
3、用一個二重循環,輸入二維數組的值。
4、主函數中,定義兩個整型變量m和n,保存數組的行和列。
5、接着,定義一個二維數組。
6、輸入數組的行列數,保存在變量m和n中。
7、運行程序,在計算機中輸入一個二維數組,電腦就會自動將其讀入並輸出。
注意事項:
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和彙編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
c語言二維數組
這個就是指針數組和數組指針的區別了,我當年也在這裡轉了很久,希望我下面所說得可以幫到你。
首先,明確編譯器是怎麼識別*s[]和(*s)[]兩種形式的代碼的。對於*s[],編譯器會以默認的右結合的方式進行識別,所以首先識別s[],這是一個數組,然後再識別*,說明這個數組的元素都是指針。所以最後的結果就是:這是一個「以指針為元素的數組」,簡稱指針數組。而對於(*s)[],由於()的優先級高於*,所以編譯器會先識別()裏面的,也就是先識別*s,所以它是一個指針,然後()說明這個指針指向的是一個數組,所以最後的結果是:這是一個「指向數組的指針」,簡稱數組指針。
好吧,我承認一點,就是這兩個東西看起來複雜,但是其實用起來區別不大,最本質的東西就是,指針數組用到多個指針,數組指針就完全是一個指針跑天下。
看下面一段代碼(我偷懶用C++寫的,反正這個不是重點):
#include
using
namespace
std;
int
main()
{
//指針數組
*a[2]
int
t1[3]
=
{0,1,2};
int
t2[3]
=
{3,4,5};
int
t3[3]
=
{6,7,8};
int
*a[3];
a[0]
=
t1;
//一個指針賦值
a[1]
=
t2;
//第二個指針賦值
a[2]
=
t3;
//第三個指針賦值
//數組指針
(*b)[3]
int
(*b)[3]
=
new
int[3][3];
for(int
i=0;i3;i++)
for(int
j=0;j3;j++)
*(*(b+i)+j)
=
i*3+j;
//一個指針跑天下
cout
*((*b)+1)
“
“
*(*(b+1))
endl;
system(“pause”);
return
0;
}
最後我想說,其實這個做題的時候有用,自己寫的時候還是盡量直接用int[n][m]的方式比較方便,稍微浪費點空間問題不大,重要的是看起來好看,不容易出錯。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253910.html