C语言数组问题及排序问题
发布网友
发布时间:6小时前
我来回答
共2个回答
热心网友
时间:2024-10-22 03:06
程序总共有三个问题,改过就好了。
1:if(prime(a[i]))
h=k=i;
break;
改为:
if(prime(a[i]))
{h=k=i;
break;}
2:scanf("m=%d",&m);去掉m=
3:if(i-m>=0)
for(j=i-m;j<i-m+m/2;j++)
{ k-=1;t=a[j];a[j]=a[k];a[k]=t;}
else
for(d=0;d<i/2;i++)
{h-=1;t=a[d];a[d]=a[h];a[h]=t;}
else后面的for循环,是d++,不是i++
把这三个地方改过之后结果就对了。已经调试通过。追问你很厉害
热心网友
时间:2024-10-22 03:06
void reverse(int a[],int n,int m)
{ int i,d,j,k,t,h;
for(i=n-1;i>=0;i--)
{ if(prime(a[i])) //这段有问题,后面要加个大括号if (....){h=k=i,break;},不然只执行一次退出了。
h=k=i;
break;
}
if(i-m>=0)
for(j=i-m;j<i-m+m/2;j++) //这个判断也不好,你看我写在后面的例子,
{ k-=1;t=a[j];a[j]=a[k];a[k]=t;}
else
for(d=0;d<i/2;i++) //这个看起来也太麻烦了,你自己根据我给的例子来改改吧
{h-=1;t=a[d];a[d]=a[h];a[h]=t;}
}
void main()
{ int a[10]={4,3,6,7,8,13,9,19,21,26},m,i;
scanf("m=%d",&m);
reverse(a,10,m);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
交换数据
for (k=0; k<m/2; k++)
{
t=a[i-m+k];
a[i-m+k] = a[i-k-1];
a[i-k-1] = t;
}
C语言的数组排序问题。
简单的末位比较排序,从最后一个数a[i-1]开始和x比较,大于x的向后移一位,比如a[i-1] > x,就将a[i-1]的数值写给a[i],所以第一个空应该添i-1。最后比较到a[4]的时候while循环跳出,这个时候的数据x要回填到a[5]的位置,所以第二个空应该添i++或i+1。所以说答案是:第一个填 i...
C语言数组问题及排序问题
程序总共有三个问题,改过就好了。1:if(prime(a[i]))h=k=i;break;改为:if(prime(a[i])){h=k=i;break;} 2:scanf("m=%d",&m);去掉m= 3:if(i-m>=0)for(j=i-m;j<i-m+m/2;j++){ k-=1;t=a[j];a[j]=a[k];a[k]=t;} else for(d=0;d...
C语言数组排序问题
include<stdio.h> void main(){ int a[10] = { 10,2,3,4,5,6,9,8,7,1 };int i,j,t;for(j=0;j<10;j++)for(i=0;i<10-1-j;i++)if(a[i]>a[i+1]) /* 由小到大,由大到小时改为< */ { t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<10;i++)pr...
c语言数组排序问题
include#includeint main(void){char cName[5][10],temp[10];float fScore[5],ftemp;int i,j,k;printf("输入学生的姓名和成绩:\n");for(i=0;i<5;i++){printf("cName[%d]是:",i);scanf("%s",cName[i]);printf("成绩为:");scanf("%f",&fScore[i]);}for(i=0;i<5;i+...
C语言高手请回答我几个问题,关于数组排序问题
所以准确来说,应该是把数组的首地址,和需要操作的元素个数,作为实参传入函数 第二个问题,for(i=0;i<n-1;i++){//n个元素,排n-1轮 //1 选择:从乱序a[i]-a[n-1]中 // 选择最大值元素 max_id=i;for(j=i+1;j<n;j++){ if(a[max_id]...
问题: C语言,有一个已排好序的数组,要求输入一个数后,按原来排序_百度...
C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。解:include int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100};int temp1,temp2,number,end,i,j;printf("array a:\n");for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");pri...
c语言考试。问数组,常见的数组排序算法有那几种?选择一个描述过程。_百...
常用冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面(数组由小到大排序)。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,此时第一趟结束,在最后的数必...
c语言数组排序问题
for(j=i+1;j<10;j++)if(a[m]= i+1的 所以结果不一样
c语言关于多个数组的排序问题
//1你没有理解冒泡排序原理,应该和内层循环个元素交换,所以把变量i+1替换为变量j//2strcmp函数不会用,应该传指针,因为只有这样才能比较两个字符串。#include<stdio.h>#include<string.h>int main(){ int i,j; char *temp; char *p[6]; char a[6][6]; printf("请输入你想比较的...
c语言数组排序问题,注意要求
int main(int argc,char *argv[]){ int a[N],b[N],i,j,k;printf("Please enter the %d integers...\n",N);for(i=0;i<N;scanf("%d",a+i),b[i++]=a[i]);system("cls");printf("输入:");for(i=0;i<N;printf("%5d",a[i++]));printf("\n输出:");for(i=0;i...