一个简单的问题。

leijunyuncyuyan 2009-03-08 01:44:53
#include<iostream.h>
int sum(int *q,int n)
{
int i,s=0;
for(i=0;i<n;i++,q++)
{
s+=*q;
return s;
}
}
void main()
{
int n,m,a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
printf("please input m and n(m<n<10):\n");
scanf("%d,%d",&m,&n);
p=a+m-1;
printf("%d\n",sum(p,(n-m+1));
}


...全文
178 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ctan 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 leijunyuncyuyan 的回复:]
谢谢各位的回复,不过好像还是不能正确输出结果诶。各种方法我都试过了啊!怎么搞的嘛?
呵呵
[/Quote]

可以输出正确结果呀,
楼主能举一个不正确的例子吗?
点点灵犀 2009-03-12
  • 打赏
  • 举报
回复
up
莫情莫钱 2009-03-12
  • 打赏
  • 举报
回复
up
leijunyuncyuyan 2009-03-11
  • 打赏
  • 举报
回复
谢谢各位的回复,不过好像还是不能正确输出结果诶。各种方法我都试过了啊!怎么搞的嘛?
呵呵
lostmiracle 2009-03-08
  • 打赏
  • 举报
回复
嗯 return放里面了,只一次判断循环就出来了
yangch_nhcmo 2009-03-08
  • 打赏
  • 举报
回复
改了一下,楼主再试试看

#include <iostream>
using namespace std;

int sum(int *q,int n)
{
int i,s=0;
for (i=0;i <n;i++,q++)
{
s+=*q;
}
return s;
}
int main()
{
int n,m,a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
printf("please input m and n(0<m <n <=10):\n");
scanf("%d,%d",&m,&n);
if (m>n || m <= 0 || n > 10)
{
printf("Please check your input!");
return 1;
}
p=a+m-1;
printf("%d\n",sum(p,n));
return 0;
}

traceless 2009-03-08
  • 打赏
  • 举报
回复
#include <stdio.h>
int sum(int *q,int n)
{
int i,s=0;
for(i=0;i <n;i++,q++)
{
s+=*q;

}
return s; //错在这里,return 放错位置了,粗心了
}
void main()
{
int n,m,a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
printf("please input m and n(m <n <10):\n");
scanf("%d,%d",&m,&n); //还有这个输入时,中间也要输入逗号
p=a+m-1;
printf("%d\n",sum(p,n-m+1));
}


程序逻辑没错
粗心了,lz 细心点嘛
zhkefa 2009-03-08
  • 打赏
  • 举报
回复

#include <stdio.h>
int sum(int *q,int n)
{
int i,s=0;
for(i=0;i <n;i++,q++)
{
s+=*q;

}
return s; //你return位置放错了
}
void main()
{
int n,m,a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
printf("please input m and n(m <n <10):\n");
scanf("%d,%d",&m,&n);
p=a+m-1;
printf("%d\n",sum(p,(n-m+1)));
}

leijunyuncyuyan 2009-03-08
  • 打赏
  • 举报
回复
运用一下程序求出m到n个数的和。
#include<stdio.h>
int sum(int *q,int n)
{
int i,s=0;
for(i=0;i<n;i++,q++)
{
s+=*q;
return s;
}
}
void main()
{
int n,m,a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
printf("please input m and n(m<n<10):\n");
scanf("%d,%d",&m,&n);
p=a+m-1;
printf("%d\n",sum(p,n-m+1));
}
这个程序错在哪里?能执行,但是答案不对。帮我解释一下,多谢了哦。呵呵


areyouhappy 2009-03-08
  • 打赏
  • 举报
回复
最后一个语句后面少了个‘)’。
printf("%d\n",sum(p,(n-m+1)));
zhkefa 2009-03-08
  • 打赏
  • 举报
回复
#include <iostream.h>
你在程序中用了printf、scanf,头文件应该是#include<stdio.h>

printf("%d\n",sum(p,(n-m+1)); //上个)

改为
printf("%d\n",sum(p,(n-m+1)));
zhkefa 2009-03-08
  • 打赏
  • 举报
回复
什么问题?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧