首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要修复一些bug(预处理指令)

需要修复一些bug(预处理指令)
EN

Stack Overflow用户
提问于 2022-03-24 10:46:41
回答 1查看 39关注 0票数 -4

任务条件:使用结构类型和预处理器指令,编写N类计算机设备输入信息的程序,即制造商、类型(打印机、扫描仪、膝上型计算机、鼠标、键盘)、颜色、型号,按公式y= 3x ^2+ 4x-2计算价格,其中x是选项数加上N。

代码语言:javascript
运行
复制
#define N 5 
#define M 15
#define PRI(X) 3*X*X+4*X-2 
typedef struct Ctechnology 
{
    char firma[M];
    char type[M];
    int price[N];
} comp;
int main()
{
    comp a;
    printf("Firm, type, price - (y=3x^2+4x-2)\n ");
    for (int i = 0; i < N; i++)
    {
        a.price[N] = PRI(((i + 1)+N)); // there is a problem
        printf("%d) ", i + 1); 
        scanf("%s %s", a.firma, a.type);
        printf("\n                              | [%d] | Firm %10s | Type %10s | Price %10d |\n", i + 1, a.firma, a.type, a.price[N]);
    }
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-24 10:51:33

正在运行

代码语言:javascript
运行
复制
#define N 5 
#define M 15
#define PRI(X) 3*X*X+4*X-2 

price[N] = PRI(((i + 1)+N));

通过gcc -E (运行预处理程序),我们可以

代码语言:javascript
运行
复制
price[5] = 3*((i + 1)+5)*((i + 1)+5)+4*((i + 1)+5)-2;

通常,您可能希望在指令中在Xes周围添加括号,因此不管输入如何,它们都是正确分组的:

代码语言:javascript
运行
复制
#define PRI(X) 3*(X)*(X)+4*(X)-2 

->

代码语言:javascript
运行
复制
price[5] = 3*(((i + 1)+5))*(((i + 1)+5))+4*(((i + 1)+5))-2;

然后,当然,有一个问题,price[N]始终是一个禁区的访问.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71601048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档