本文目錄一覽:
- 1、用C語言編一個程序求一個二維數組各行數求和
- 2、C語言二維字符串數組的行數怎麼求啊
- 3、C語言中如何取二維數組的一行(一列)?
- 4、C語言如何求一個二維數組有幾行,還有為什麼會提示gets()是一個未定義的標識符?
- 5、c語言中 用函數計算二維數組每行之和以及每列之和 怎麼編程?
用C語言編一個程序求一個二維數組各行數求和
#include stdio.h
int main()
{
int a[5][5] = {{0, 1, 2, 3, 4}, {1, 2, 3, 4, 5}, {2, 3, 4, 5, 6}, {3, 4, 5, 6, 7}, {4, 5, 6, 7, 8}};
for (int i = 0; i 5; ++i)
{
int sum = 0;
for (int j = 0; j 5; ++j)
{
sum = sum + a[i][j];
}
printf(“Line %d sum = %d\n”, i, sum);
}
return 0;
}
C語言二維字符串數組的行數怎麼求啊
#include stdio.h
int main()
{
char str[][6] = {“abcd”, “ABC”, “abc”};
printf(“str行內元素%d\n”, sizeof(*str));//這個會顯示出二維數組中每個行的元素個數 (這裡是指可容納的個數)
printf(“str總%d\n”, sizeof(str));//這個會顯示出二維數組中元素的個數(這裡是指可容納的個數)
//其實就是利用了sizeof函數來判斷 我們都知道sizeof()用來判斷一個類型所佔用的位元組數的
//所以:你問『C語言二維字符串數組的行數怎麼求啊?』 你應該是說在定義數組時候沒有顯示的寫出行數,可是此時需要求出行數是吧?
//那麼 行數 = 可容納元素總數(這裡是指可容納的個數) / 行中元素個數(這裡是指可容納的個數)
printf(“行數=%d\n”, sizeof(str)/sizeof(*str));
return 0;
}
就是考你對二維數組的理解了,別忘了 數組也是c的數據類型之一哦。
只要是數據類型就可以用sizeof判斷 其類型佔用的內存位元組數。
正好c的字符就是佔用一個位元組啊,所以sizeof返回的位元組數=字符個數。
^_^!
C語言中如何取二維數組的一行(一列)?
沒有簡單的函數或表示方法,只能使用循環輸出或者使用數組中的值。
#include stdio.h
int main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
int b[3],n=3;
printf(“輸出第三行:\n “);
for(int i=0;i3;i++)
{b[i]=a[n-1][i];printf(“%d “,b[i]);}
}
數組b中存儲的就是第n行的數據。
擴展資料:
數組的使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,數據庫是從1開始。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
參考資料:
百度百科-數組
C語言如何求一個二維數組有幾行,還有為什麼會提示gets()是一個未定義的標識符?
C語言中求一個二維數組有幾行的方法如下:
假設有定義int nums[10][20];
二維數組行數可以用sizeof計算:
rows = sizeof(nums)/sizeof(nums[0]);
第二個問題,為什麼gets會提示未定義標識,有兩種可能:
一、編譯器支持gets庫函數,但是你沒有包含頭文件#includestdio.h;
二、編譯器本身不支持gets庫函數,因為gets函數是一個不安全函數,容易導致數組越界,所以很多編譯器都不再有這個庫函數了。取而代之的是gets_s或者fgets這類相對安全的函數,可以試試。
c語言中 用函數計算二維數組每行之和以及每列之和 怎麼編程?
已通過測試
#include stdio.h
void fun(int a[][10],int row,int col)
{ int i,j,k,sum;
int r[10],c[10];
k=0;
for(i=0;irow;i++)
{ sum=0;
for(j=0;jcol;j++)
sum+=a[i][j];
r[k]=sum;
k++;
}
k=0;
for(j=0;jcol;j++)
{ sum=0;
for(i=0;irow;i++)
sum+=a[i][j];
c[k]=sum;
k++;
}
for(k=0;krow;k++)
printf(“the sum of NO.%d row is %d\n”,k+1,r[k]);
for(k=0;kcol;k++)
printf(“the sum of NO.%d column is %d\n”,k+1,c[k]);
}
main()
{ int a[10][10],row,col;
int i,j;
printf(“Input the row and column of array:”);
scanf(“%d%d”,row,col);
for(i=0;irow;i++)
for(j=0;jcol;j++)
scanf(“%d”,a[i][j]);
fun(a,row,col);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/248144.html