C语言数组,函数程序问题

C语言数组,函数程序问题,第1张

图1第十几行代码看不清,希望题主把图发得更详细一点。

不过根据代码中 Input 函数来看,题主输入一个数据到num[i]和score[i]数组时,之后进行了i自加,即i指向了数组的下一个元素的位置,而此时的num[i]和score[i]里是还没有输入数据的,拿此时的score[i]来判断是否大于0显然是错误的。这应该是无法跳出循环的原因

题主将while语句里改成score[i-1] >=0应该就能解决问题了

#include<iostream>

using namespace std;

int partition(int a[],int low,int high)

{

int pivotkey=a[low];

int i=low,j=high+1;

while(i<j)

{

do { i++; } while(i<=high && a[i]<pivotkey);// && i<=high);

do { j--; } while(j>=low && a[j]>pivotkey);// && j>=low);

swap(a[i],a[j]);

}

swap(a[i],a[j]);

swap(a[low],a[j]);

return j;

}

void quicksort(int a[],int low,int high)

{

if(low<high)

{

int pivotloc=partition(a,low,high);

quicksort(a,low,pivotloc-1);

quicksort(a,pivotloc+1,high);

}

}

void main()

{

int i,x,a; //申请一个指针变量存放动态数组

//cin>>n;

a=new int[11]; //申请长度为11的动态数组

for(i=0;i<10;i++)

cin>>a[i];

quicksort(a,0,9);

for( i=0;i<10;i++)

cout<<a[i]<<'\t'; //插入前,输出排序后的数组

cout<<"\n\n";

cin>>x;

if(x<=a[0]) //如果插入的元素比数组的第一个元素还要小,则先输出X,再输出原来的数组

{

cout<<x<<" ";

for(int i=0;i<10;i++)

cout<<a[i]<<'\t';

cout<<endl;

}

if(x>=a[9]) //如果插入的元素比数组的最大的元素还要大,则先输出数组,再输出X

{

for(i=0;i<10;i++)

cout<<a[i]<<'\t';

cout<<x<<endl;

}

if((x>a[0])&&(x<a[9])) //如果插入的元素处于数组中的某一个位置,则从后往回找,一边比 较,元素比X大的往后移动一个位置,直到

{ //找到比X小的a[j],就停止比较和移动,把X放在a[j+1]的地方

int j;

for( j=10;j>0;j--)

{

if(x<a[j])

a[j+1]=a[j]; //往后移动

else

a[j+1]=x; //插入

}

for( i=0;i<11;i++)

cout<<a[i]<<'\t'; //输出数组

cout<<endl;

}

}

#include <stdioh>void main( )

{

double a[10],max,min;//输入几个数可以自己决定。

int i;

for(i=0;i<10;i++)

scanf("%lf",&a[i]);

max=min=a[0];

for(i=1;i<10;i++)

{

if(max<a[i]) max=a[i];

if(min>a[i]) min=a[i];

}

printf("max=%lf,min=%lf\n",max,min);

}

以上就是关于C语言数组,函数程序问题全部的内容,包括:C语言数组,函数程序问题、c++用数组编程一下程序、编写一个计算一个数组中所有元素之和的c++程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9987162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存