永发信息网

看看这个程序哪里有错(在VS2010中C++编的)

答案:4  悬赏:60  手机版
解决时间 2021-11-20 09:23
看看这个程序哪里有错(在VS2010中C++编的)
最佳答案
#include
void killed(int m,int n,int a[20],int i);//在主函数之前定义一下。
全部回答
#include
void killed(int m, int n, int a[20], int i);//声明
void main()
{
int m, n, a[20], i;
scanf("%d", &m);
printf(" ");
scanf("%d", &n);
for (i = 0; i a[i] = i + 1;
i = 0;
killed(m, n, &a[20], i);
scanf("%d", &a);
}
void killed(int m, int n, int a[20], int i)
{
int h = n;
for (; h>1;)
{
if (i + n > m - 1)
i = n - m - i;
else
i = i + m;
for (; a[i] == 0;)
{
i++;
if (i == m)
i = 0;
}
printf("a[%d] was killed ", i);
h = h - 1;
}
}
首先程序有个bug
for(i=0;i其次
killed(m,n,&a[20],i);//函数传值是值传递,传数组传的是地址,20什么也不是
=> killed(m,n,&a,i)
void killed(int m,int n,int a[20],int i)
=>void killed(int m,int n,int a[],int i)
最后函数使用要先声明
回去把谭浩强的书再看看吧。虽然大家都在吐槽这本书,但是人家的基础知识说得很详细,这是不争的事实
#include
int killed(int m,int n,int a[20]);//函数声明
void main()
{
int m,n,a[20]={0},i;

scanf("%d",&m);
scanf("%d",&n);

for(i=0;i a[i]=i+1;

i=killed(m,n,a); //返回值为最后剩下的元素的下标
printf("%d ",a[i] ); //输出最后一个剩下的值
}
int killed(int m,int n,int a[20])
{
int h=n,i=0;
int x=0; //定义一个计数器
for(;h>1;)
{
if ( a[i] != 0 ) //该位置数不为0,则进行累加
{
x++ ;
if ( x==m ) //到了出列的数,则结束本轮报数
{
printf("%d was killed ",a[i]);
a[i]=0;//出列数,置为0
h=h-1;
x=0;
}
}
i++;
if(i==n) //超过最大数,从头重来
i=0;
}
for(i=0;i if ( a[i] )
break;
return i;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
“犭”加“是”念什么
梦见白狐狸咬我最后尾巴被我打断了
信宜话剧非主流歌词
过去的样子与现在的样子,英语作文怎么写
开场白的故事式
上海俊为装饰工程有限公司怎么样?
细辛的功效与作用都有哪些?
辽宁省的绥中离喀咗有多远
15万买秦好还是速腾好
华南理工学院“相沟通”自学考试里面互认免考
z76次1车厢01号在哪个位置?
我想在农村开个塑料袋厂 都是需要哪些手续
为什么有些人的生日可一周两岁,而有些却只能
尺寸长正负两个毫米是什么意思?
顾兄弟开锁地址有知道的么?有点事想过去!
推荐资讯
如今外贸出口“手表”好做吗?在线如何收款?
长豆角炒着怎么做好吃
“一幅”与“一副”有什么区别?
男生腰带3.1厘米还是3.5厘米的好
主流专业染烫美发地址在什么地方,想过去办事
长袖外套和卫衣适合什么时候穿
濉溪开发区的中心学校怎么样?有知道的麻烦说
四个字的品牌羽绒服有哪些
二手房评估一般与卖家报价差多少–卖房
鸿图小食店怎么去啊,有知道地址的么
六年级上册快乐小博士答案百度文库
只有毛,没有肉。每天吃吃不够(猜一生活用品)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?