首页 > 试题广场 >

以下代码实现求1到10的和,请指出其中的错误(给出错误的行号

[问答题]
以下代码实现求1到10的和,请指出其中的错误(给出错误的行号并说明原因):
  1 #include <iostream>
  2 using namespace std;
  3 
  4 int func1(int a=0;int b)
  5 {
  6     return a+b;
  7 }
  8 int sum()
  9 {
 10     int sum;
 11     int* const point1;
 12     int const* point2;
 13     point1=&sum
 14     point2=func1(3,4);
 15     int i=1,j=2;
 16     for(i,j;i<10,j<10;i++,j++)
 17     {
 18          sum+=func1(i,j);
 19      }
 20     return *point1;
 21 }
 22 int main(int argc, char *argv[])
 23 {
 24     int ret= sum();
 25     cout << ret;
 26     return 0;
 27 }
#include <iostream>
using namespace std; 
int func1(int a,int b)
{
    return a + b;
}
int sum()
{
    int sum = 0;
    int* const point1 = &sum;

    int i = 1,j = 2;
    for(i, j; i < 8,j < 11; i = i + 2,j = j + 2)
    {
        sum += func1(i,j);
    }
    return *point1;
 }
 int main(int argc, char *argv[])
{
    int ret= sum();
    cout << ret;
    return 0;
 }

sum 必须初始化;

编辑于 2020-11-10 17:52:22 回复(0)
第四行:改为int func1(int a=0,int b),在函数的传参中使用‘,’。
第十三行:语法错误,缺少‘;’,且point1为常量地址无法修改。
第十四行:类型不匹配,point2的类型为(const int *)而func的返回值类型(int)

发表于 2020-09-11 09:55:48 回复(0)
在codeblocks中实际测试,14行代码这里如果i 和 j之间是逗号则前面i的判断条件并不会起作用,起作用的是后面j的判断条件,要想循环同时受到i,j值的限定,则14行代码应该为
for(i,j; i<10&&j<11; i=i+2,j=j+2)
并且,sum也应该初始化为0;
发表于 2020-10-13 21:31:54 回复(0)
sum没有初始化不算错误?
发表于 2020-09-24 20:58:34 回复(0)
#include <iostream>
using namespace std;
 
 int func1(int a,int b)
 {
     return a+b;
 }
 int sum()
 {
	 int sum = 0 ;
     int* const point1 = &sum;

     int i=1,j=2;
     for(i,j; i<8,j<11; i = i + 2,j = j + 2)
     {
          sum+=func1(i,j);
     }
    return *point1;
 }
 int main(int argc, char *argv[])
 {
     int ret= sum();
     cout << ret;
     return 0;
}

发表于 2020-08-08 12:25:50 回复(2)