| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 865 人关注过本帖
标题:求助:关于动态分配地址空间问题
取消只看楼主 加入收藏
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
结帖率:66.67%
收藏
已结贴  问题点数:30 回复次数:1 
求助:关于动态分配地址空间问题
#include<stdio.h>
#include<stdlib.h>

int
tt (float (*p)[2], int a, int b, int N)
{
  int *temp = (int *) malloc (sizeof (int) * N);
  int k = 0;
  int t;
  int i, j;
  for (i = 0; i < N; i++)
    {
      if (i == a || i == b)
    {
      continue;
    }
      t =
    p[i][0] * (p[b][1] - p[a][1]) + (p[a][0] - p[b][0]) * p[i][1] -
    p[a][0] * p[b][1] + p[b][0] * p[a][1];
      if (t == 0)
    return 0;

      else if (t > 0)
    temp[k++] = 1;
      else
    temp[k++] = -1;
    }
  for (j = 1; j < k; j++)
    {
      if (temp[0] != temp[j])
    return 0;
    }
  return 1;
}

int
real (float p[][2], int n)
{
  int *flag = (int *) malloc (sizeof (int) * n);
  int m, i, j;
  m = 0;
  for (i = 0; i < n; i++)
    {
      flag[n] = 0;
    }
  for (i = 0; i < n; i++)
    {
      for (j = 1; j < n; j++)
    {
      if (flag[j])
        continue;
      if (tt (p, m, j, n))
        {
          flag[m] = 1;
          m = j;
          break;
        }
    }
    }
  flag[m] = 1;
  for (i = 0; i < n; i++)
    {
      if (flag[i] == 0)
    return 0;
    }
  if (tt (p, 0, m, n))
    return 1;
  return 0;
}

int
main ()
{
  float (*p)[2];
  int *space;
  int N, i;


  char ch = 'y';

  while (ch == 'y' || ch == 'Y')
    {
      printf ("输入点的个数:");
      scanf ("%d", &N);
      p = (float *) malloc (sizeof (float) * N * 2);
      printf ("输入坐标(例:3 4):");
      for (i = 0; i < N; i++)
    {
      printf (" %d:", i);
      /*scanf ("%f", &(*(p + i))[0]);*/
      scanf ("%f", &p[i][0]);
      scanf ("%f", &(*(p + i))[1]);
      printf ("(%f ,  ", p[i][0]);
      printf ("%f)\n", p[i][1]);
    }
      if (real (p, N))
    printf ("可以构成凸多边形\n");
      else
    printf ("不能构成凸多边形\n");
      printf ("是否继续<y\n>?");
      scanf("%s",&ch);
    }
 return 0;
}


错误:
Compiling...
Cpp1.cpp
C:\Documents and Settings\JSZX\桌面\Cpp1.cpp(19) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
C:\Documents and Settings\JSZX\桌面\Cpp1.cpp(85) : error C2440: '=' : cannot convert from 'float *' to 'float (*)[2]'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.

Cpp1.obj - 1 error(s), 1 warning(s)
搜索更多相关主题的帖子: 空间 continue include return 动态 
2011-12-13 18:56
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
收藏
得分:0 
回复 3楼 lin471306489
最近忙期末考试  没上论坛  谢谢帮助  我邮箱738376771@
2011-12-27 18:35
快速回复:求助:关于动态分配地址空间问题
数据加载中...
 
   



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

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