主题:[讨论]刚学C++,有个程序不知道哪里错了,就是没输出结果
caomang
[专家分:150] 发布于 2010-05-04 10:45:00
RT……这个破问题烦了我很久了,一直没找出哪里有问题
#include<iostream.h>
void jfs(int n,int m,int s);
int main()
{int n;
int m;
int s;
cout<<"输入孩子的总数:";
cin>>n;
cout<<"输入起始孩子的号码:";
cin>>m;
cout<<"输入需要间隔的孩子个数:";
cin>>s;
void jsf(int n,int m,int s);
return 0;
}
void jsf(int n,int m,int s)
{int *boy=new int[n],*p;
int i;
int j=0;
for(i=0;i<n;i++) boy[i]=i+1;
for(i=0;i<n;i++)
cout<<boy[i];
p=boy+m-1;
for(i=1;j<=n;)
{if(*p!=0)
{ if(i=s)
{ cout<<*p;i=0;*p=0;j++;}
else i++;}
p++;
if(p>boy+n-1) p=boy;
}
delete [n]boy;
}
各位大神,帮忙看下啊,谢谢了
回复列表 (共26个回复)
11 楼
一个人的方向 [专家分:0] 发布于 2010-05-04 23:09:00
void jsf(int n,int m,int s);没执行
12 楼
caomang [专家分:150] 发布于 2010-05-05 02:12:00
我就是想知道,为什么没执行呢?
13 楼
雪光风剑 [专家分:27190] 发布于 2010-05-05 07:41:00
你main里面也写成void jsf(int n,int m,int s);是在main里面重新声明了一遍jsf函数而不是调用jsf函数
函数怎么调用都忘了??
14 楼
coolwater2008 [专家分:720] 发布于 2010-05-05 08:57:00
看到这顺便提一下,C和C++都是一遍编译,但是在函数处理方面却不一样(从编译器角度看问题),C++支持先声明后定义,比如:你的程序中开始有这么一句话:void jfs(int n,int m,int s);
这个说专业点好像叫啥向前调用...
而C语言却没有这种用法,你只能在程序的开始部分声明函数紧接着定义函数。
15 楼
caomang [专家分:150] 发布于 2010-05-05 09:42:00
13#的情况我当时搞糊涂了,也就乱试了下,在写成jsf(int n,int ,ints)之后,然后再编译,就一直有错误了,也许是还有个大错误没发现,下面是昨天晚上改成的程序:
#include<iostream.h>
void jfs(int n,int m,int s);
int main()
{int n;
int m;
int s;
cout<<"输入孩子的总数:";
cin>>n;
cout<<"输入起始孩子的号码:";
cin>>m;
cout<<"输入需要间隔的孩子个数:";
cin>>s;
jsf(n,m,s);
return 0;
}
void jsf(int n,int m,int s)
{int *boy=new int[n],*p;
int i;
int j=0;
for(i=0;i<n;i++) boy[i]=i+1;
for(i=0;i<n;i++)
cout<<boy[i];
p=boy+m-1;
for(i=1;j<n;)
{if(*p!=0)
{ if(i==s)
{ cout<<*p;i=0;*p=0;j++;}
else i++;}
p++;
if(p>boy+n-1) p=boy;
}
delete [n]boy;
}
提示有错误:
E:\c++\shuhaizi.cpp(14) : error C2065: 'jsf' : undeclared identifier
E:\c++\shuhaizi.cpp(18) : error C2373: 'jsf' : redefinition; different type modifiers
那个没定义的jsf错误就在main里面……后面的error是在jsf的第一句,就是申明变量的那句。
刚刚学C++,请各位继续不吝指教,谢谢
16 楼
caomang [专家分:150] 发布于 2010-05-05 09:45:00
汗,main里面的i是怎么来的……我又翻了个不知道什么时候的版本出来了……
17 楼
caomang [专家分:150] 发布于 2010-05-05 10:16:00
程序改的差不多了,有输出,输出正确了。谢谢大家
就差优化下程序了,呵呵
18 楼
雪光风剑 [专家分:27190] 发布于 2010-05-05 18:34:00
前面void jfs(int n,int m,int s);
调用的时候怎么就变成jsf了
19 楼
hduhjj [专家分:0] 发布于 2010-05-06 08:47:00
雪真是厉害啊,呵呵,忍不住感慨下,连那个jsf的小差错都看到了呢
20 楼
caomang [专家分:150] 发布于 2010-05-06 10:45:00
对的,主要是那里,改了那里,基本就完成了……呵呵
我来回复