标题:计算器的问题
只看楼主
bianchengcbl
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2010-7-25
结帖率:50%
已结贴  问题点数:10 回复次数:12 
计算器的问题
#include"stdio.h"
main()
{   
    int n,i;
    int A[n];
    int sum=0;
    int mul=1;   
    printf("请输入要计算多少个整数:");
    scanf("%d",&n);   
    printf("请输入要计算的数:");
    for(i=n;i>0;i--)
        scanf("%d",A[i]);
    for(i=n;i>0;i--)
    {
        sum+=A[i];
        mul=mul*A[i];
    }
    printf("此数列加法计算结果是%d,乘法计算结果是%d",sum,mul);
}
错误出现在定义数组那里,不知道怎么改?
F:\VC6\VC6\1.c(6) : error C2057: expected constant expression
F:\VC6\VC6\1.c(6) : error C2466: cannot allocate an array of constant size 0
F:\VC6\VC6\1.c(6) : error C2133: 'A' : unknown size
跪求高手指教!
计算器怎么在不知道计算数有多少个的情况下,进行计算。请提供一个思路。
搜索更多相关主题的帖子: expected include 
2011-07-21 14:25
linqingwudi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2010-9-14
得分:1 
int A[n];初始化数组必须先确定
2011-07-21 14:30
bianchengcbl
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2010-7-25
得分:0 
回复 2楼 linqingwudi
我想编的是在不知道要进行计算的数有多少个的情况下,由用户自己来输入。
不是说我在用户使用之前就已经给用户设定好了有多少个计算数。
你看看能怎么修改?
2011-07-21 15:16
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
得分:1 
#include<stdio.h>
#include <stdlib.h>
main()
{   
    int n,i;
 //   int A[n];
    int sum=0;
    int mul=1;   
    printf("请输入要计算多少个整数:");
    scanf("%d",&n);   
    int* A=(int*)malloc(n*sizeof(int));
    printf("请输入要计算的数:");
    for(i=0;i<n;i++)
        scanf("%d",&A[i]);
    for(i=0;i<n;i++)
    {
        sum+=A[i];
        mul=mul*A[i];
    }
    printf("此数列加法计算结果是%d,乘法计算结果是%d\n",sum,mul);
}
2011-07-21 16:04
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
得分:0 
   你不知道要读入多少个数时要采用动态分配空间的办法,因为数组的定义它的大小要是常量。并且数组是从0开始到n-1,而不是1到n;包含标准头文件用尖括号较好,区别自己的头文件
2011-07-21 16:11
bianchengcbl
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2010-7-25
得分:0 
回复 5楼 loveshuang
还是有问题
 error C2143: syntax error : missing ';' before 'type'
 : error C2065: 'A' : undeclared identifier
: error C2109: subscript requires array or pointer type
 : error C2102: '&' requires l-value
 : error C2109: subscript requires array or pointer type
 : error C2109: subscript requires array or pointer type
2011-07-22 23:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:1 
回复 6楼 bianchengcbl
首先,某處缺了分號,自己檢查一下。其次,最關鍵的問題,數組A的定義被註釋掉了,於是它沒有被聲明,但代碼中又用到,不報錯才怪。其實你抄錄和敲打代碼的時候,自己都要看到這些問題啦。

授人以渔,不授人以鱼。
2011-07-22 23:16
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
得分:0 
回复 6楼 bianchengcbl
你的编译器有问题???我这边没有错误啊,还是你哪些位置搞错了
2011-07-23 01:13
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:1 
我和爽哥一样 没错误 编译器VC++6.0

                                         
===========深入<----------------->浅出============
2011-07-23 09:03
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
得分:1 
楼主程序是.c结尾的,按c编译处理,所以声明变量要在最前面,改成下面就行
    int* A=(int*)malloc(n*sizeof(int));
    printf("请输入要计算多少个整数:");
    scanf("%d",&n);   
    //int* A=(int*)malloc(n*sizeof(int));
    printf("请输入要计算的数:");
如果把程序改成.cpp,按c++处理,没有问题的

帮人《---》帮己
2011-07-23 13:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-345800-1-1.html




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

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