| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:问题:动态分配的问题
只看楼主 加入收藏
lh2006713
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-11-9
收藏
 问题点数:0 回复次数:1 
问题:动态分配的问题
#include<stdio.h>
void max(int arr[][3],int m,int n);
void main()
{
 int arr[2][3];
 int i,j;
 printf("input the data for arr:");
 for(i=0;i<2;i++)
  {
  for(j=0;j<3;j++)
   scanf("%d",&arr[i][j]);
   printf("\n");
  }
 max(arr,2,3);
 getch();
}
void max(int arr[][3],int m,int n)
{
 int max,c=0,l=0,i,j;
 int (*p)[3];
 max=arr[0][0];
 p=arr;
 for(i=0;i<m;i++)
  for(j=0;j<n;j++)
   if (max<*(*(p+i)+j))
    {
    max=*(*(p+i)+j);
    l=i;
    c=j;
    }
 printf("\nthe max value is:%d",max);
 printf("\nthe line is:%d.the column is:%d.\n",l,c);
}
这个是我原来的程序
现在我想用动态分配的办法来实现
下没是我写的  但是问题很多  我改不来  希望高手来帮忙改改
#include<stdio.h>
void max(int *p,int m,int n);
void main()
{
 int *p=NULL;
 int i,j,c,l;
 printf("input lines of arr:");
 scanf("%d",&l);
 printf("input column of arr:");
 scanf("%d",&c);
 p=(int *)calloc(l*c,sizeof(int));
 if(!p)
 {
  printf("memory request failed!\n");
  exit(1);
 }
 /* */
 printf("input the data for arr:");
 for(i=0;i<l;i++)
  {
  for(j=0;j<c;j++)
   scanf("%d",*(p+i)+j);
   printf("\n");
  }
 /**/
 max(*p,l,c);
 free(p);
 getch();
}
void max(int *p,int m,int n)
{
 int max,col=0,line=0,i,j;
 int (*p1)[];
 max=*p1;
 /**/
 for(i=0;i<m;i++)
  for(j=0;j<n;j++)
   if (max<*(*(p1+i)+j))
    {
    max=*(*(p1+i)+j);
    line=i;
    col=j;
    }
 printf("\nthe max value is:%d",max);
 printf("\nthe line is:%d.the column is:%d.\n",line,col);
}
搜索更多相关主题的帖子: arr int max 动态 
2007-12-07 18:27
许一民
Rank: 1
来 自:江苏连云港
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-29
收藏
得分:0 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

void MAX(int *p,int m,int n);

int main()
{
    int *p=NULL;
    int i,j,c,l;
    printf("input lines of arr:");
    scanf("%d",&l);
    printf("input column of arr:");
    scanf("%d",&c);

    p=calloc(l*c,sizeof(int));
    if(!p)
    {
        printf("memory request failed!\n");
        exit(1);
    }

    printf("input the data for arr:\n");
    for(i=0;i<l;i++)
        for(j=0;j<c;j++)
            scanf("%d",p+i*c+j);
    printf("\n");
    for(i=0;i<l;i++)
        for(j=0;j<c;j++){
            printf("%10d",*(p+i*c+j));
            if(j==c-1)
                printf("\n");
        }

    MAX(p,l,c);
    free(p);
    getch();
    return 0;
}

void MAX(int *p,int m,int n)
{
    int max,col=0,line=0,i,j;
    max=*p;

    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            if (max<*(p+i*n+j))
            {
                max=*(p+i*n+j);
                line=i;
                col=j;
            }
    printf("\nthe max value is:%d",max);
    printf("\nthe line is:%d.the column is:%d.\n",line,col);
}

丛丛芳芫满冬秋,淡淡一笑泯恩仇!
2007-12-18 10:07
快速回复:问题:动态分配的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved