c語言行和列
⑴ 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;i<row;i++)
{ sum=0;
for(j=0;j<col;j++)
sum+=a[i][j];
r[k]=sum;
k++;
}
k=0;
for(j=0;j<col;j++)
{ sum=0;
for(i=0;i<row;i++)
sum+=a[i][j];
c[k]=sum;
k++;
}
for(k=0;k<row;k++)
printf("the sum of NO.%d row is %d\n",k+1,r[k]);
for(k=0;k<col;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;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",&a[i][j]);
fun(a,row,col);
}
⑵ 關於c語言數組的問題知道他是表示幾行幾列的!
是個3*4的二維數組,即三行四列{0,1,2,3},
{4,5,6,7},{8,9,10,11}
分別表示第一行到第三行的元素。即第一行元素值:a[0][0]=0,a[0][1]=1,a[0][2]=2,
a[0][3]=3,分別對應第一個花括弧{0,1,2,3},以此類推。
這是前人規定的,不是以我們意志轉移的,這個是在賦初值啊!
⑶ c語言中 將數組列換行 行換列
1、如果是二維數組,將就可按行輸出就行:
for(i=0;i<3;i++) //按每一行輸出,每循環一次輸出一行
{ for(j=0;j<3;j++) //輸出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n"); //每輸出一行,輸出一個換行符
}
2、如果是一維數組,可按每行輸出的數的個數來控制:
for(i=0;i<9;i++)
{ printf("%3d",a[i]); //a為一維數組
if((i+1)%3==0) printf("\n"); //每行輸出三個數,因為數組的下標i從0開始,所以先加個1再除3取余數
}
⑷ C語言行指針和列指針
&在任何時候都不能定址, 它是用來取地址的.
p[i]在任何時候都等價於*(p+i)
p[i][j] (其中p是int*[x]類型的)在任何時候都等價於*(*(i*x)+j)
x是一個變數.
int a[10][20]
這里x = 20
int a[20][10]
這里x = 10
C語言沒有什麼行指針, 列指針.
一維數組就是一級指針,
二維數組是特殊的二級指針,
以此類推......
⑸ C語言 求矩陣各行各列的和
思路:求矩陣各行的和時,矩陣的行先不變,利用for循環依次遍歷該行的每一列元素累加求和;求矩陣各列的和時,矩陣的列先不變,利用for循環依次遍歷該列的每一行元素累加求和。
參考代碼:
#include<stdio.h>
intSr(inta[3][5],intn)//求矩陣n行的累加和
{
inti,j,c=0;
for(j=0;j<5;j++)
c+=a[n][j];
returnc;
}
intSc(inta[3][5],intn)//求矩陣n列的累加和
{
inti,j,c=0;
for(i=0;i<3;i++)
c+=a[i][n];
returnc;
}
intmain()
{
inti,j,a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6};
for(i=0;i<3;i++){
for(j=0;j<5;j++)
printf("%d",a[i][j]);
printf(" ");
}
printf("各行的累加和為: ");
for(i=0;i<3;i++)
printf("%d",Sr(a,i));
printf(" 各列的累加和為: ");
for(i=0;i<5;i++)
printf("%d",Sc(a,i));
return0;
}
/*
輸出:
13579
246810
35876
各行的累加和為:
253029
各列的累加和為:
612192225
*/
⑹ c語言數組,怎麼樣從鍵盤上輸入行數和列數
你好!
你的scanf中用逗號分隔了兩個格式符,則輸入時也要用逗號分開
比如輸入
2和5
2,5按下回車就行了
僅代表個人觀點,不喜勿噴,謝謝。
⑺ c語言指針變數中行指針和列指針是什麼要如何使用
對於一個二維數組:
int a[3][5];
a即是它的行指針,a+0表示第0行的地址,a+1表示第1行地址…
a[row]+col即列指針,列指針經過一次解引用就可以轉化成二維數組中實際的值,列指針也是指向非常量的常量指針。
⑻ C語言定義數組行列數的問題
同學你好,我也遇到過這樣的問題,數組定義時,行列數不能用變數。 但是, 我們可以動態創建一個二維數組。
你可以這樣做:(以int型為例)
int **a;
int m,n,i;
scanf("%d%d",&m,&n); //輸入你此次想要創建數組的行數和列數,儲存在m和n中
a=(int**)malloc(m*sizeof(int*)); /*malloc函數在stdlib.h裡面,用的時候加入這個頭文件*/
for(i=0;i<m;i++)
a[i]=(int*)malloc(n*sizeof(int));
/*這樣以後你就可以把a當作二維數組a[m][n]來用了。。
由此可以實現,創建不確定行列數的二維數組了 ( 前提你知道malloc函數的意義,並要掌握指針的基礎知識哦 )
採納我喲~~
⑼ c語言 怎樣用程序知道二維數組行數和列數
比如有這樣一個二維數組: int a[3][5];
求數組元素的總數: sizeof(a) / sizeof(int)
求數組列數: sizeof(a[0])/sizeof(int)
而數組行數則為 :( sizeof(a) / sizeof(int) )/ ( sizeof(a[0]) / sizeof(int) )
不知道你明白了么?