variably modified 'a' at file scope 之减治法---假币问题
来源:互联网 发布:java notify wait原理 编辑:程序博客网 时间:2024/06/05 16:57
话不多说,直接报错
看以下代码
/***************
减治法---假币问题有n枚外观形同的硬币,里边有一枚假币,质量较轻,通过一架天平找出假币
****************************/
#include<stdio.h>
#define N 8
//const int N = 8; //有8枚硬币,此处有错
int a[N] = {2,2,1,2,2,2,2,2}; //真的重2,假的重1
int Coin(int low, int high,int n) //在a[low]~a[high]中找假币
{
int i,num1,num2,num3; //存储三组硬币个数
int add1 = 0,add2 = 0; //存储前俩组硬币质量和
if(n == 1)
return low + 1; //返回的是序号,下标加1
if(n%3 == 0)
num1 = num2 = n/3; //前面俩组有[n/3]组硬币
else
num1 = num2 = n/3 + 1;
num3 = n - num2 - num1;
for(i = 0;i <num1;i++)
add1 = add1 + a[low + i]; //计算第一组硬币重量和
for(i = num1;i <num1 + num2;i++) //计算第二组硬币重量和
add2 = add2 + a[low + i];
if(add1 < add2) //在第一组查找
return Coin(low,low + num1 - 1,num1);
else if(add1 > add2) //在第二组查找
return Coin(low + num1,low + num1 + num2 - 1,num2);
else
Coin(low + num1 + num2 ,high,num3); //在第三组查找
}
int main()
{
int i = Coin(0,7,8);
printf("第%d枚是假币\n",i);
return 0;
}
问题解决:
因为由const定义的是变量,用define定义的宏是常量。C++中可以这么用,但是C中不能这么用。
在c里静态数组(固定长度的数组,即LISTEN_NUM位置是常数)是允许的,而动态数组
(譬如给数组的长度是用变量来表示的)不能写成UserProfile users[LISTEN_NUM];形式的,只能自行分配内存。
1 0
- variably modified 'a' at file scope 之减治法---假币问题
- Variably modified array at file scope
- Variably modified array at file scope
- error: variably modified 'table' at file scope
- Variably modified array at file scope
- Variably modified array at file scope
- Variably modified array at file scope
- const——error: variably modified ‘buf’ at file scope
- 错误信息 error: variably modified 'buf' at file scope char buf[bufsize];
- C : stack memory, goto and “jump into scope of identifier with variably modified type”,
- 代码管理工具SourceTree之Modified Binary File
- 假币问题
- swift:Declaration is only valid at file scope问题解决
- poj 2692 假币问题
- Poj 2692:假币问题
- 天平与假币问题
- POJ2692假币问题
- 假币问题 oj41
- 【uboot】mips架构uboot启动分析
- 像素与实际尺寸
- VMware Workstation12安装Ubuntu 16.04和VMware Tools教程
- &在.properties和xml文件中差别,导致数据库中文乱码.
- CTF-Internetwache2016-exp-RemotePrinter
- variably modified 'a' at file scope 之减治法---假币问题
- Windows 7 64位用STC ISP下载51单片机程序的方法
- hdu 2544
- 【已解决】android.view.WindowManager$BadTokenException: Unable to add window
- pycharm 运行spark
- 实现apk的更新
- 时间管理
- 2017.4.22 hankson的趣味题 思考记录
- java 关键字static