Ⅰ 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]);
}