Ⅰ c語言設計函數:接受一個二維數組,用指針方式返回數組的最大值,最小值
#include <stdio.h>
void get_val(int array[][200], int m, int n, int *max, int *min)
{
int i, j;
for(*max = array[0][0], *min= array[0][0], j = 0; j < m; j++){
for(i = 0; i < n; i++){
if(*max < array[j][i]){
*max = array[j][i];
}
if(*min > array[j][i]){
*min = array[j][i];
}
}
}
}
int main(int argc, char *argv[])
{
int array_test[100][200];
int j, i, max, min;
for(j = 0; j < 100; j++){
for(i = 0; i < 200; i++){
array_test[j][i] = i*j;
}
}
get_val(array_test, 100, 200, &max, &min);
printf("max:%d,min:%d\n",max,min);
}
編譯通過並通過測試,另外還可以通過指針傳遞:
void get_val(int *array, int m, int n, int *max, int *min)
{
int i, j;
for(*max = *array, *min= *array, j = 0; j < m; j++){
for(i = 0; i < n; i++){
if(*max < *(array+j*n+i)){
*max = *(array+j*n+i);
}
if(*min > *(array+j*n+i)){
*min = *(array+j*n+i);
}
}
}
}
Ⅱ c語言二維數組的賦值
1、首先在電腦上打開c語言編程軟體。然後創建項目。
Ⅲ 如何用C語言編一個程序,輸入一個二維數組,然後以一個矩陣的方式輸出。
#include<stdio.h>
void main(){
int array[3][3], (*pArr)[3], *p[3], i, j, sum;
srand(time(NULL));
for(i=0; i<3; i++)
for(j=0; j<3; j++)
array[i][j] = rand()%100+0;
pArr = array;
for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++){
printf("%d ", pArr[i][j]);
if(j == 2){
printf(" ");
}
}
for(i=0; i<3; i++)
p[i] = array[i];
for(i=0; i<3; i++){
sum = 0;
for(j=0; j<3; j++){
sum += p[i][j];
}
printf("第%d行的和是%d ", i+1, sum);
}
}
(3)c語言接收一個輸入的二維數組擴展閱讀:
1、printf命令的作用是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。printf()函數的調用格式為:printf("<格式化字元串>", <參量表>)。
printf()是C語言標准庫函數,在 stdio.h 中定義。輸出的字元串除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
2、printf函數調用的一般形式
printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。printf函數調用的一般形式為:printf(「格式控制字元串」,輸出表列)其中格式控制字元串用於指定輸出格式。
格式控制串可由格式字元串和非格式字元串兩種組成。格式字元串是以%開頭的字元串,在%後面跟有各種格式字元,以說明輸出數據的類型、形式、長度、小數位數等。如「%d」表示按十進制整型輸出,「%ld」表示按十進制長整型輸出,「%C」表示按字元型輸出等。後面將專門給予討論。
非格式字元串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字元串和各輸出項在數量和類型上應該一一對應。
Ⅳ C語言中如何用gets();語句來接收一個二維數組
gets從標准輸入設備讀字元串函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『 』空字元,並由此來結束字元串。
因為gets函數是以換行符為分隔,所以用一層循環即可讀取一個二維數組。對於每行字元串,使用sscanf讀取每個數。
例如:
chars[100];
inta[3][3],i;for(i=0;i<3;i++){
gets(s);
sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2);
}
Ⅳ 急急!!!如何用c語言輸入和輸出一個二維數組
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[2][2];
int i,j;
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d",a[i][j]);
return 0;
}
運行成功
Ⅵ 如何用C語言將文本文件中儲存的數據讀入一個二維數組
此代碼符合你的要求:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
FILE *fp;
char line[1000];
char wLine[1000];
double SIMUL[100][100];
int lineCount = 0;
char *delim=" ";
int ii,jj;
fp = fopen("1.txt","r");
if( fp==NULL){
printf("fopen error!\n");
return -1;
}
memset(line,0x00,sizeof(line));
while(fgets(line,1000,fp)!=NULL){
strtok(line,delim);
for(ii=0;ii<5;ii++){
SIMUL[lineCount][ii] = atof(strtok(NULL,delim));
}
lineCount++;
}
fclose(fp);
//列印結果
for(ii=0;ii<lineCount;ii++){
for(jj=0;jj<5;jj++){
printf("%f ",SIMUL[ii][jj]);
}
printf("\n");
}
return 0;
}
Ⅶ c語言 二維數組如何輸入 該怎麼輸入數組,才能輸出
其實並不存在真正的「二維」,只不過是C編譯器自動的將它 一行一行的保存成了一維信息。所以,二維數組的輸入只要用雙重循環即可,比如:
int a[11][11];
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
scanf("%d",&a[i][j]);
}
}
其實 int a[3][3] 可以這樣初始化:
int a[3][3] = {0,1,2,3,4,5,6,7,8};
編譯器會自動的將線性信息寫入二維數組中。
Ⅷ 用c語言編寫程序,把下面的數據輸入到一個二維數組中
#include <stdio.h>
int main(int argc, const char * argv[]) {
int arr[4][4]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}};
int i,j,temp;
printf("主對角線:\n");
for(i=0;i<4;i++)
printf("%d ",arr[i][i]);
putchar('\n');
printf("副對角線:\n");
for(i=0;i<4;i++)
printf("%d ",arr[i][4-i]);
putchar('\n');
printf("交換後:\n");
for(i=0;i<4;i++)
{
temp=arr[0][i];
arr[0][i]=arr[2][i];
arr[2][i]=temp;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",arr[i][j]);
putchar('\n');
}
return 0;
}
Ⅸ C語言,二維數組輸入輸出
2維數組可以按一維排列 a[j][i] 對應 a[j*n+i]
#include <stdio.h>
main()
{
int i,j,n,m;
int *a, *b;
static int v;
scanf("%d %d",&n,&m);
a = (int*)malloc(sizeof(int)*n*m);
b = (int*)malloc(sizeof(int)*n*m);
for (j=0;j<n;j++)
for (i=0;i<m;i++)
{ scanf("%d",&v); a[j*m+i]=v; b[i*n+j]=v;}
for (j=0;j<m;j++) for (i=0;i<n;i++) printf("%d ",b[j*n+i]);
for (j=0;j<n;j++) for (i=0;i<m;i++) printf("%d ",a[j*m+i]);
}