小人物哈哈哈哈
2021-01-22 14:03有木有大佬知道为什么我的while循环只执行了一次便停止了
//判断一个无序数列是否为等差数列
#include <iostream>
using namespace std;
typedef struct node{
int key;//key用来记录是否为等差,0代表是,1代表不是
struct node* next;
}node,*Linklist;
void mysort(int a[],int n){
int i,j,k,temp;
for(i=0;i<n;i++){
k=i;
for(j=i+1;j<n;j++){
if(a[j]<a[k]) k=j;
}
if(k!=i){
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
int main(){
int n,i,num;
Linklist L,p,q;
L=(Linklist)malloc(sizeof(node));
L->next=NULL;
p=L;
while(1){
cout<<"输入n的值:";
cin>>n;
if(n==0){//n等于0代表输入结束,执行输出yes和no的语句
p=L->next;
while(p!=NULL){
if(p->key==1)
cout<<"yes";
else if(p->key==0)
cout<<"no";
p=p->next;
}
break;
}
int a[1000];
cout<<"输入数列中元素(元素两两之间以空格隔开):";
for(i=0;i<n;i++){
cin>>a[i];
}
mysort(a,n);
q=(Linklist)malloc(sizeof(node));
q=p->next;
q->next=NULL;
num=a[1]-a[0];
for(i=1;i<n;i++){
if(a[i]-a[i-1]!=num){//说明不是等差数列,直接跳出
q->key=0;
break;
}
}
if(i==n){//说明是等差
q->key=1;
}
p=q;
}
return 0;
}
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 为什么我的JS代码不起作用,哭了,大佬们看一下
- javascript
- java
- eclipse
- 3个回答
- 请问各位大佬,为什么我最后没有跳出while死循环????
- java
- 4个回答
- 有没有大佬知道为什么会报错我的head没初始化?
- c++
- 2个回答
- 程序中的while陷入了死循环,我觉得是链表指针的问题,但是我找不出来,求大佬帮助
- c++
- 1个回答
- 请求大佬支援!为什么执行的是第一个return,而不是最后一个return?
- java
- java-ee
- intellij-idea
- 5个回答
换一换