當前位置:首頁 » 編程語言 » 在C語言中有關數組的問題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

在C語言中有關數組的問題

發布時間: 2022-07-18 06:05:36

c語言中有關數組的問題

由於c/c++在初始化數組的時候要分配空間,所以不能在初始化時將數組長度和數組內容同時寫為空。應該至少指定數組長度或者數據內容中的一項。

Ⅱ C語言中關於數組的問題

你的思路很直接,求出了每行最大和每列最小,存入到對應數組當中。
這里有點小小的問題,column是指列,row是指行,但是對應的你弄相反了,這個不是主要問題。
主要問題在於,你沒有保存下標。每行最大的那個數組下標,和每列最小的數組下標並不像你所理解的那樣這好用對應判斷所得到的。
for(i=0;i<4;i++)
if(colum[i]==row[i])//錯誤就在於此,並不是對應相等,要保存下標進行比較的
{
printf("%d",colum[i]);
k++;
}

#include<stdio.h>
int main()
{
int a[4][4],colum[4],row[4],i,j,k=0,temp,flg=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);

for(i=0;i<4;i++)
{
for(j=0,colum[i]=a[i][j];j<4;j++) //行
if(colum[i]<a[i][j])
{
colum[i]=a[i][j];
temp = j; //這里保存每行最大對應的列的下標。
}
for(j=0,row[i]=a[i][temp];j<4;j++) //進而對這個位置上的列進行比較
{
if(row[i]>a[j][temp]) //如果這個數在該列不是最小,那麼就跳出
{
row[i]=a[j][temp];
flg++;
//break;
}
}
if(!flg)
{
printf("a[%d][%d] = %d\n",i,temp,a[i][temp]);
k++;
}
}
if(k==0)printf("Not have digit");
printf("\n");
return 0;
}

Ⅲ C語言數組在使用中常見的幾種錯誤

在計算機程序中,通常可能發生以下三種類型的錯誤:
(1)語法錯誤:這是指程序中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將數組元素引用寫成a(2)等)、使用了未定義的變數、括弧不配對等。含有語法錯誤的程序是不能通過編譯的,因此程序將不能運行。
(2)邏輯錯誤:這是指程序中沒有語法錯誤,可以通過編譯、連接生成可執行程序,但程序運行的結果與預期不相符的錯誤。例如整型變數的取值超出了有效的取值范圍、在scanf函數遺漏了取地址運算符&、數組元素引用中下標越界、在應當使用復合語句時沒有使用復合語句等。由於含有邏輯錯誤的程序仍然可以運行,因此這是一種較難發現、較難調試的程序錯誤,在程序設計、調試中應予特別注意。
(3)系統錯誤:這是指程序沒有語法錯誤和邏輯錯誤,但程序的正常運行依賴於某些外部條件的存在,如果這些外部條件缺失,則程序將不能運行。例如折半查找法是在已經排序的數組上進行的,但實際的數據並沒有進行排序、程序中需要打開一個已經存在的文件,但這個文件由於其他原因丟失等。

Ⅳ 關於C語言數組的問題

圖片圓中多了分號,for循環只在index自增,沒有執行你想要的{}語句。隨後執行{}內的printf時index=5,所以你後面的數不在你的數組內隨機的。

Ⅳ c語言中關於數組的問題

你要明白"[]"是個優先順序最高運算符(有之一...), 編譯器對於這運算符是這樣解析的:
array[m0][m1][m2][m3]...[mn] (其中: n>=0, n為整數), 被解析為:
*(...*(*(*(*(array+m0)+m1)+m2)+m3)+...+mn)
簡單來講,取n=1時吧,有:
array[m0][m1] = *(*(array+m0)+m1)
而n=0時就更簡單了:
array[m0] = *(array+m0)

所以, 你的問題中:
a[1] = *(a+1), 而 1[a]也即*(1+a),這兩者顯然是相等的...

Ⅵ C語言關於數組的問題

a表示數組的第一個值,不能自增,要增加可採取a+1的方式,例下標從0開始時,a表示a[0],a+1表示a[1]。定義數組時沒有賦值,就不能對數組整體賦值,只可以單個賦值。如a[0]=10。

Ⅶ c語言中數組問題。

C的數組長度是常量,不能在程序中進行增減操作。但C提供了根據需要由用戶在程序運行中確定大小的手段,那就是「動態分配內存」,實質就是根據實際需要由用戶在程序開始運行後提供數組長度。一旦確定了這個長度,運行中就不可再更改,但可以刪除——這實質上就提供了當數組長度不足或需要減小時,可以通過代碼來實現數組大小的更新——只是沒有現成操作符進行直接操作。

Ⅷ 關於C語言中「數組」的問題。

一 ,s為數組s[]的數組名,他指向s[0],k = arrin(s) 是指 函數arrin的返回值賦給k;int *a是指 定義了一個指向 整型變數 的指針a,他向函數內部傳遞s所帶的信息
二,那是宏定義,讓M的值為100
三,M能變,他影響數組s的長度

我說的不一定標准,這是我的理解……
完事兒請採納,有事請追問