一道C++程序,高手帮忙看一下!万分感谢!送10分以表感谢!

#include <stdio.h>
#include<iostream.h> 请帮忙看一下
void main()
{
int i,j,k,a[31],n=0; |这几段代码应该
for(i=0;i<=30;i++) |怎么
a[i]=0; |解释
k=1; |呢????
for(i=1;i<=15;i++){ |
for(j=1;a[k]==0&&j<9;k++){ |它实现的
j++; |内容
if(k>30) k=1; |是形成一个数组a[31]
} |并给数组赋值(或1或0)
while(a[k]!=0){ |这是怎么赋值的,高手帮我看一下
k++; |我们班人都不懂!
if(k>30) k=1; |
} |
a[k++]=1; |
if(k>30) k=1; |
//n++;
}
//printf("%d\n",k);
/*for(i=1;i<=30;i++)
printf("%d ",a[i]);
printf("(1为非教徒,0为教徒)");*/
cout<<"请输入你的号码(from 1 to 30):";
cin>>i;
if ((i<1)||(i>30))
cout<<"input error"<<endl;

else if (a[i] =1)
cout<<"you are out..."<<endl;
else if (a[i]=0)
cout<<"you are lucky..."<<endl;

}
这几段代码应该怎么解释呢????
它实现的内容是形成一个数组a[31]并给数组赋值(或1或0)这是怎么赋值的,高手帮我看一下,我们班人都不懂

for(i=1;i<=15;i++){
for(j=1;a[k]==0&&j<9;k++){
j++;
if(k>30) k=1;
}
while(a[k]!=0){
k++;
if(k>30) k=1;
}
a[k++]=1;
if(k>30) k=1;
//n++;
}
这是程序内核所在,循环15次每次剔除一人,for(j=1;a[k]==0&&j<9;k++)循环中又把第九个数赋为1表示剔除,if(k>30) k=1; 保证人数在30内循环!由此可得!
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-05-15
我也不大懂这玩意儿,将就我能看的懂的瞎说几句吧
int i,j,k,a[31],n=0; |这几段代码应该
for(i=0;i<=30;i++) |怎么
a[i]=0; |解释
k=1; |呢????
这是定义几个整数型变量(i j k)和数组(a1-a31),并构成循环(for(i=0;i<=30;i++))定义i的初始值为0,当i小于等于30的时候进行循环,且每循环一次,i自动+1,a1=0 k=1

不过看后面的语句确实有点晕,程序运行后,手工输入一个数字,如果在1-30之间,则显示“LUCKY”,大于30或小于1显示“OUT”,不明白用来干什么的。
第2个回答  2007-05-15
int i,j,k,a[31],n=0; |这几段代码应该
for(i=0;i<=30;i++) |怎么
a[i]=0;

这是一段话,先把a[i]这个数组里所有的元素赋值0。

k=1;这个赋值你应该能看懂吧,赋值是右边的值给左边的变量。

for(i=1;i<=15;i++){
for(j=1;a[k]==0&&j<9;k++){
j++;
if(k>30) k=1;
}
while(a[k]!=0){
k++;
if(k>30) k=1;
}
a[k++]=1;
if(k>30) k=1;
//n++;
}

中间上面是一段幌子,实际意思就是把j变成9,k变成8,再K变成31后再变成1

再把a[1]变成1,再给a[1]--a[15]赋值,下面if (k>30) k=1又是幌子。

一道C++程序,高手帮忙看一下!万分感谢!送10分以表感谢!
} 这是程序内核所在,循环15次每次剔除一人,for(j=1;a[k]==0&&j<9;k++)循环中又把第九个数赋为1表示剔除,if(k>30) k=1; 保证人数在30内循环!由此可得!

一段c++代码陷入死循环了,高手帮忙...
cin> }while(num>10||num<<1);\/

C++高手请进帮忙写个代码,十万火急!!!
\/\/ sgjv.cpp : Defines the entry point for the console application.\/\/ \/\/ 1.Write a program that stores and prints ONE HUNDRED (100) integers in a 2D (twodimensional)\/\/ array of TEN (10) rows and TEN (10) columns. Fill the array with random integers \/\/ in between 1 t...

C++高手帮忙看一个程序啊!速度!!!
将第二行class Car; 中的“;”去掉就没有error了 还有一warning可把int main()改为void main()

高手帮忙把这段程序在c++上边运行,并截图发过来下,谢了,急急急...
要先编译然后运行的,如果已经可以执行的那就按照下面做:如果是windows下直接在程序所在的文件夹下执行 ".\/程序名.exe"如果是linux下就执行 “.\/程序完整名”这样就OK了

C++ 高手帮帮忙啊 这程序咋也无法运行!!!
第二,假设只输入#,那么r->data == '#' r=r->next; r->next又是无定义的。它指哪里都不知道。。这个里面你的循环结束了,你有一个输出,cout<<r->data<<r->next->data<<endl;就非常有问题了。。r 它都等于一个未定义的东东,它都指向一个未知的内存~~~自己改吧。不帮你改了。

关于C++的一道编程题,请高手帮忙阿
因为没有学过文件,所以不太看得懂题,还请高手指点一下文本编辑器要求:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。... 因为没有学过文件,所以不太看得懂题,还请高手指点一下 文本编辑器要求:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。 展开 ...

拜求C++高手,有好心编程高手帮帮忙,谢谢了!!
} } };void main(){ int b[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};Array test(b,4);\/\/ b初始化test,完成对该类的测试 cout<<"没有旋转之前的"<<endl;test.show();test.xuanzhaun();cout<<endl;cout<<"旋转之后的"<<endl;test.show();} ...

C++程序出错了,请求高手帮忙?
include <iostream> using namespace std;void swap(int,int);void swap(int *p1,int *p2){ int p;p=*p1;p1=*p2;p2=p;} void main(){ int a,b;scanf("%d,%d",&a,&b);if(a

C++中编个求根号值的程序,不懂哪错了,请高手帮忙看看!!!
include<iostream> include<math.h> using namespace std;int main(){ float a,b;cin>>a;if(a>0) \/\/这里是要这样判断的。{ b=sqrt(a);cout<<b;} else { cout<<"重新输入" ;} \/\/注意英文下输入。system("pause");return 0;} ...

相似回答