double my_sum(double paired_value[][2],int n ) //需要指定二維數(shù)組后面一位,這樣編譯器才知道二維數(shù)組的列數(shù)。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)劍閣,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
求一個(gè)二維數(shù)組元素的周邊之和:源程序如下:
#define N 3//宏定義N=3
#include stdio.h
void main()
{
int number[N][N] = { {1,2,3},{4,5,6},{7,8,9} };//定義二維數(shù)組并賦初值
int i, j;//定義循環(huán)變量
int sum = 0;//定義加和變量,并初始化賦值為0
for (i = 0; i N; i++)//控制行變量遍歷
for (j = 0; j N; j++)//控制列變量遍歷
if (i == 0 || i == (N-1) || j == 0 || j == (N-1))//判斷是否為周邊元素
sum += number[i][j];//進(jìn)行求和運(yùn)算
printf("%d", sum);//輸出和
}
其中,上述程序中變量N,為數(shù)組的行列維數(shù),可靈活進(jìn)行修改。
程序運(yùn)行結(jié)果如下:
擴(kuò)展資料:
用行指針實(shí)現(xiàn)求一個(gè)二維數(shù)組四周元素的平均值。
#include stdio.h
#include stdlib.h
#define M 4
#define N 5
float fun(int(*p)[N], int m)
{
int i, j, k = 0;//定義循環(huán)變量
float sum, ave;//定義和變量、平均數(shù)變量
sum = 0;//初始化和變量為0
for (i = 0; i m; i++)//控制行變量遍歷
for (j = 0; j N; j++)//控制列變量遍歷
if(i == 0 || i == (m-1) || j == 0 || j == (N-1))//判斷是否為周邊元素
{
sum += p[i][j]; //進(jìn)行求和運(yùn)算
k++;
}
ave = sum / k;//求平均
return ave;//返回平均數(shù)
}
int main()
{
int a[M][N] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20} };
int i, j;
float ave;
for (i = 0; i M; i++)//遍歷打印出數(shù)組全部元素
{
for (j = 0; j N; j++)
printf("%4d", a[i][j]);
printf("\n");
}
ave = fun(a,M);//函數(shù)計(jì)算并返回平均值
printf("average=%.2f\n", ave);//輸出平均值
system("pause");//任意鍵繼續(xù)
return 0;
}
擴(kuò)展資料程序運(yùn)行結(jié)果:
已通過(guò)測(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);
}
#includestdio.h
int main(void)
{
int ar[3][3]= { {1,2,3},
{4,5,6},
{7,8,9}
};
int num;
int i,j;
int k = 0,sum=0;
int (*ptr)[3];
ptr = ar;
num = sizeof(ar) / sizeof(ar[0]);
printf("num = %d\n",num);
printf("%d\n",*(*(ptr +0) + 1));
for(i = 0; i 3 ;i++)
{
for(j = 0 ;j 3; j++)
{
k += *(*(ptr + i)+j);
//sum += k;? ?
}
}
printf("%d\n",k);
return 0;
}
擴(kuò)展資料:
main()函數(shù)用法:
大多數(shù)UNIX系統(tǒng)對(duì)main函數(shù)提供了三個(gè)參數(shù),原型如下:
intmain(intargc,char*argv[],char*env[]);
其中第三個(gè)參數(shù)是環(huán)境表地址。
ANSIC規(guī)定main函數(shù)只有兩個(gè)參數(shù),而且第三個(gè)參數(shù)與全局變量environ相比也沒(méi)有帶來(lái)更多益處,所以POSIX.1也規(guī)定應(yīng)使用environ而不使用第三個(gè)參數(shù)。
通常用getenv和putenv函數(shù)來(lái)存取特定的環(huán)境變量,而不是用environ變量。
main函數(shù)的原型多是下面這種形式:
intmain(intargc,char*argv[]),參數(shù)argc代表了輸入?yún)?shù)的個(gè)數(shù),char*argv[]表示傳入的參數(shù)的字符串,是一個(gè)字符串?dāng)?shù)組。
例如在linux平臺(tái)下編寫一個(gè)小程序:
int main(intargc,char*argv[])
{
int i;
printf("argc:%d\n",argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
exit(0);
}
用gcc編譯后形成一個(gè)a.out的可執(zhí)行的文件,運(yùn)行a.out,其結(jié)果是:
argc=1,argv[0]=”a.out”
運(yùn)行的程序的文件名,也占用一個(gè)參數(shù)位置,也就是說(shuō)argv數(shù)組中的第一個(gè)單元指向的字符串總是可執(zhí)行程序的名字,以后的單元指向的字符串依次是程序調(diào)用時(shí)的參數(shù)。這個(gè)賦值過(guò)程是操作系統(tǒng)完成的,只需要拿來(lái)用就可以了。
在命令行參數(shù)的提交中,系統(tǒng)會(huì)自動(dòng)給指針數(shù)組后加上一個(gè)NULL,所以for(i=0;i<argc;i++)這句也可以換成while(*argv!=NULL)
int main(intargc)省略其它參數(shù)的定義也是可以的,這樣運(yùn)行時(shí)候argc就直接返回參數(shù)個(gè)數(shù),而不返回其它。
運(yùn)行命令行參數(shù)帶有char*argv[]的時(shí)候,如果輸入?yún)?shù)帶有空格,應(yīng)該用雙引號(hào)括起來(lái)。