编程题,已知的数组,以4为步长,循环输出,c,c++,java都可以

已知数组-1,3,8,6,5,20,要求输出6,3,-1,8,20,5

#include <iostream>
using namespace std;
 struct Node
 {
 int date;
 Node *next;
 };
 void josephbicycle(Node* p,int n,int k,int m)
 {
 Node* head=p;
 Node* start=p;  //游戏开始位置
 int cnt=0;//计数用的
 int count=0;
 while(1) //将链表头尾相连成约瑟夫环
 {
 if(p->next==NULL)
 {
 p->next=head;
 break;
 }
 else
 p=p->next;
 }
 for(Node* tmp=head;cnt<n;tmp=tmp->next)
 {
 start=tmp;
cnt++;
}
 cnt=0;
 if(m==1)            //判断离开,删除离开成员的指针
 {
 for(Node* tmp=start;cnt<n;tmp=tmp->next)
 {
 cout<<tmp->next->date<<endl;
 cnt++;
 }
 }
 else
 {
 cnt=1;
 while(1)
 {
 cnt++;
 if(cnt==m)
 {
 count++;
 cout<<start->next->next->date<<endl;
 start->next->next=start->next->next->next;
 cnt=1;
 }
 if(count==n)
 break;
 start=start->next;
}
}
 }
int main()
{
Node *p,*head;
p=new Node;
head=p;
int n,date;
cout<<"请输入数组所包含元素个数n:";
cin>>n;
cout<<"请输入各个元素,用空格隔开:";
for(int i=1;i<=n;i++)
{
cin>>date;
p->date=date;
if(i<n)
{
p->next=new Node;
p=p->next;
}
if(i==n)
p->next=NULL;
}
josephbicycle(head,n,1,4);
return 0;
}
满意请采纳!不懂可以问,不满意可以修改!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-17
import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String arng []){
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
list1.add(-1);
list1.add(3);
list1.add(8);
list1.add(6);
list1.add(5);
list1.add(20);
int i = -1;
while(list1.size()>0){
i+=4;
if(list1.size()==1){
     i=0;
}
else{
while(i>=list1.size()){
i=i-list1.size()-1;
}
}
list2.add(list1.get(i));
list1.remove(i);
}
for(int j=0;j<list2.size();j++){
System.out.println(list2.get(j));
}
}
}



Java写的,望采纳,都是简单的语句,就不加备注了

第2个回答  2013-10-17
tongyiloushagnguandian
第3个回答  2013-10-17
你们都是人才 ·······这多人来回答···

C++中若一数组A的长度为4
数组下标都是从0开始,如果长度为4,那么A[4]已经越界了,即使程序可以运行,那么它的值也是不确定的。

一、选择题(每题2分,共30分) 1.将C++源程序进行 可得到目标文件...
这个的主体部分,大致就是这样。主要是看for循环部分。2:这题,就是简单的循环处理加上循环输出。int a[20][4];int sum[20]; \/\/用以存储总分 float av[20]; \/\/用以存储平均分 char mark[20];\/\/用以存储标记 void calc(){ int i=0;int j=0;int tempsum =0;float tempav = 0...

C语言编程题:定义一个数组,然后利用循环为数组输入10个整数,然后再将数...
int main(){ int a[10]={},i,sum=0;printf("请输入10个整数:\\n");for(i=0;i<10;i++){ scanf("%d",&a[i]);sum+=a[i];} printf("10个元素和为:%d",sum);return 0;}

C++中是否可以不用for循环一次性就输出一个整数数组中的所有元素
不用循环:int a[8]={1,2,3,4,5,6,7,8};cout< 追问:谢谢你的回答啊,我说的是能不能像C++中可以一次性输出数组中的所有字符,如:include using namespace std;int main(){ char sh[20];cin.get(sh,20);cout< 追答:这不可能。因为数组元素是由中括号里的数字索引的,索引值是0~...

java和c++谁难?
只不过对于初学者来讲,学习Java的学习难度和找工作难度,都要相对小些。建议大家还是根据自己的学习兴趣和个人情况,选择自己将要学习的编程语言。c\/c++与java哪个更难?c语言更容易。C++组报名量很大,占了一大多半,但发奖是按比例来的,所以c++选手拿省一相对闷坦来说是有难数罩大度的,国赛也是...

C++中如何将数组以每行4个的形式输出
int array[]={1,3,8,2,11,25,7,6,9,11};for(int i = 0;i < 10; i ++){ if(i % 4 == 0 && i != 0)printf("\\n"); \/\/如果输出了四个,换一行 printf("%d\\t",array[i]);}

C++中,往一个一维数组中连续输入数值,为什么在超过数组元素个数后还能...
我记得我老师讲过c\/c++不提供数组下标的越界检查,所以你的假设编译时编译系统时不会给任何错误信息。如果你在程序中只是定义了一个数组应该不能输出的(我的理解)。是要是你不止定义了这一个数组的话,那么就可能出现你说的那种现象。因为自动变量在系统内存中的存放次序并没有统一的规定,但系统在...

求c++语言解决实际问题~~~很急的
a=3,b=4 9.输入字符的格式与要求不一致。 在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。 scanf("%c%c%c",&c1,&c2,&c3); 如输入a b c 字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。 10.输入...

用C++程序编写:输入4个整数,要求按由大到小的顺序输出
include<iostream.h> void main(){ int a[4];cout<<"输入四个整数:"<<endl;for(int k=0;k<=3;k++){ cin>>a[k]; }\/\/输入四个数 for(int i=3;i>=1;){ for(int j=0;j<i;j++){ int temp=0;if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} ...

JAVA与C++的区别详解
在数据类型及类方面,JAVA是完全面向对象的语言,所有函数和变量必须是类的一部分。除了基本数据类型外,其余都作为类对象,包括数组,实现了数据和方法的封装。而C++允许将函数和变量定义为全局的。此外,JAVA取消了C\/C++中的结构和联合,简化了程序设计。JAVA支持自动内存管理,所有对象都在堆栈上建立,无...

相似回答