C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 09:44:53
C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号

C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号
C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),
对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号保存在数组b[]中.即,a[i]的编号为b[i].要求:1)用指针数组实现;2)数组a的元素随机生成(值

C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号
//思路:用指针数组进行排序,保存排序后的下标到c中.即a[c[0:N-1]]是升序的
//      然后依次比较c[i]为下标的有序数组a[c[0:N-1]]的各元素,进行顺序编号
/*
对已知整数数组a[]的元素按从小到大的顺序连续编号(即:值相同的元素有相同编号), 
并将编号保存在数组b[]中. 即, a[i]的编号为b[i]. 要求:
  1)用指针数组实现;
  2)数组a的元素随机生成(值<10).
*/


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define  N  10
void printIntArr(int a[], int n);//打印整型跟数组a的前n个值
//交换两个int*型指针的值
void swap2intPointer(int **x, int **y){
    int *temp = *x;//*x是int *型指针
    *x = *y;
    *y = temp;
};
void swap2int(int *x, int *y){
    int temp = *x;
    *x = *y;
    *y = temp;
};
int main()
{
srand(time(NULL));
int i=0,j=0, k=0;
int a[N]={},b[N]={},c[N]={};;
int *p[N]={NULL};
int flag=1;//1表示有交换
//生成数组,并初始化指针数组
for(int i=0;i<N;i++)
{
a[i]=rand()%10;
c[i]=i;
p[i]=a+i;
}
printf("原始数组为:\n");
printIntArr(a,N);
//对指针数组进行排序,使得指针数组对应中元素指向的数据依次上升
for(i=0;flag&&i<N-1;i++)
{
flag=0;//默认没有交换.这样在排好序时可以结束排序算法.
for( j=0;j<N-i-1;j++)
{
if(*p[j] >*p[j+1])
{
swap2intPointer(&p[j],&p[j+1]);
swap2int(c+j,c+j+1);
flag=1;
}
}
}
//printf("排序后:\n");
//for(i=0;i<N;i++)
//{
//printf("%3d ",*p[i]);
//}
//puts("\n");


/*i=0,j=0;
printf("排序后的下标:\n");
for(i=0;i<N;i++)
{
printf("%3d ",c[i]);
}
puts("\n");*/

//最后一步:进行记录
i=0;
j=1;
while(i<N-1)
{
while(i<N-1 && a[c[i]]==a[c[i+1]])
{
b[c[i]]=j;
i++;
}
b[c[i]]=j++;
i++;
}
if(a[c[N-2]]!=a[c[N-1]])
b[c[N-1]]=j;
//打印数组元素大小编号
printf("原来数组元素的大小编号:\n");
for(i=0;i<N;i++)
{
printf("%3d ",b[i]);
}
puts("\n");
return 0;


}

//打印整型数组a的前元素
void printIntArr(int a[], int n)
{
    if(n<=0) return;
    for(int i=0;i<n;i++)
        printf("%3d ", a[i]);
    putchar('\n');
    return;
}

C语言编程题目 对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),对已知整数数组a[]的元素按从小到大的顺序连续编号(即,值相同的元素有相同编号),并将编号 c语言编程,二维数组求助/*输入一个M*N的整数矩阵(3 C语言编程:用一个数组表示一个正整数,一个数组元素表示整数的一位,例如396可以用数组表示用一个数组表示一个正整数,一个数组元素表示整数的一位,例如396可以用数组表示A[0]=6,A[1]=9,A[2]=3 已知三角形的三个顶点,利用数组计算三角形的面积(C语言编程) c语言编程:设有一个数组,从键盘输入10个整数,要求找出最大的数和它的下标,并把它和数组中的第一个交换 一道C语言的题目(1) 对数组A中的N(0<N<100)个整数从小到大进行连续编号,要求不能改变数组A中元素的顺序,且相同的整数要具有相同的编号.例如: A=(5,3,4,7,3,5,6) 则输出为: (3,1,2,5,1,3,4 用C语言编写输入100个整数.将他们存入数组a中,再输入一个整数x.统计并输出数组a中不小于X的元数个数 C语言编程实现输入10个整数存放到数组a的a[1]到a[10]中,并输出其中的最大数和最小数、平均值. c语言编程,输入一个数组,利用自定义函数求数组的平均数(用数组做参数). 用C语言编程:求出某数组a[5][5]每行元素的平均值和最大最小值 C语言编程:假设数组a中已经存放20个整数,编写程序,将其中所有偶数存放在数组b中,将所有奇数存放在c组中 C语言编程:求二位数组元素最大值、平均值等问题.(完整题目戳进~)求一个m行n列的二维数组的a)每行/每列元素的平均数;b)每行/每列元素的最大值;c)求出数组中的这样一个元素:它在它 若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值.(用C语言) C语言 【给数组中的元素按顺序编号】对数组 a[10] 中的十个整数从小到大进行连续编号,输出各个元素的编号.要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号.例如数组是: c语言数组编程,输入n个整数,将这n个数按绝对值由大到小排序输出 已知长度为n的数组的元素为整数,编程将数组中的偶数从小到大排序,奇数位置不变. 输入10个整数, 统计其中的正数、负数和0的个数.C语言编程题目 一道用C语言编程计算积分的题目,求大神解答!可追分.一道用C语言编程的计算积分题目.用C语言进行3.14和3.15的数值计算,3.14中求使式子等于0 的x.其中n1是整数,其余都是分数.(0<p<a1/b1,X>=a