c语言编程题 利用指针编写函数用选择法对整数数组排序(降序)。 求大神帮忙啊!!!谢谢

作者&投稿:圭天 (若有异议请与网页底部的电邮联系)
编写sort函数,实现用选择排序法对字符一维数组中存储的有效字符按降序排序~

【程序】
#include
#include
void sort(char *str)
{ int i,j;
char c;
for ( i=0;i<strlen(str)-1;i++ )
for ( j=i+1;j<strlen(str);j++ )
if ( str[i]<str[j] )
{ c=str[i]; str[i]=str[j]; str[j]=c; }
}
void main()
{ char s[256];
printf("请输入一个字符串,字符数最多255个:"); scanf("%s",s);
sort(s);
printf("排序后结果: %s
",s);
}
【运行结果】
请输入一个字符串,字符数最多255个:abioqujakdnciuyewqrjklvjlduioauior
排序后结果: ywvuuuurrqqooonllkkjjjiiiieddcbaaa

#include<stdio.h>
int main()
{
int i,j,min,t,a[10]={2,4,8,3,6,9,7,222,64,88};
printf("排序前的序列为:
");
for(i=0;i<10;i++)//输出排序前的序列
{
printf("%5d",a<i>);
}
printf("
");
for(i=0;i<9;i++)
{
min=i;//把每次循环的第一个数作为最小值
for(j=i+1;j<10;j++)
{
if(a[min]>a[j])
min=j;//交换
}
if(min!=i)//说明第一个数不是最小数,所以将a[i+1]~a[10]中最小值与a<i>对换
{
t=a[min];
a[min]=a<i>;
a<i>=t;
}
}
printf("排序后的序列为:
");
for(i=0;i<10;i++)//输出排序后的序列
printf("%5d",a<i>);
printf("
");
return 0;
}

扩展资料:return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

#include<stdio.h>

void Sort(int *a,int n) {
int *p,*q,*v,t;
for(p = a;p < a + n - 1;++p) {
v = p;
for(q = p + 1; q < a + n; ++q)
if(*v > *q) v = q;
if(*p != *v) {
t = *p;
*p = *v;
*v = t;
}
}

}

void Show(int *a,int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ",*(a + i));
printf("
");
}

int main() {
int a[] = {23,12,54,89,66,59,57,48,91,20,31};
int n = sizeof(a)/sizeof(a[0]);
printf("排序前:
");
Show(a,n);
printf("排序后:
");
Sort(a,n);
Show(a,n);
return 0;
}


#include <iostream>
using namespace std;
int sort(int *a, int num)
{
int temp;
for(int i = 0; i < (num-1); i++)
{
if(a[i]>a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
return 0;
}
int main()
{
int num;
printf("请输入数组中整数个数:\n");
scanf("%d",&num);
int a[num];
sort(a,num);
return 0;

}


开江县19883941899: C语言 写一程序用函数实现选择法程序,要求形参用指针,然后主函数调用 -
惠耐瑞新: #include <stdio.h>#define N 10 void fun(int * arr, int size) { int i, j, temp, pos; for (i = 0; i < size; i++) { 属temp = arr[i]; pos = i; for (j = i + 1; j < size; j++) { if (temp > arr[j]) { temp = arr[j]; pos = j; } } arr[pos] = arr[i]; arr[i] = temp; } } int main() { int i, a[N] = {5,...

开江县19883941899: C语言写一下程序 用指针函数 -
惠耐瑞新: #include <stdio.h> int main() { int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int x = 0, *pa = a; printf("X="); scanf("%d", &x); while(pa < a+10) { if (*pa++ == x) { printf("yes"); return 0; } } printf("no"); return 0; }

开江县19883941899: C语言; 编写一个函数,用指针方法实现功能 -
惠耐瑞新: int find(char* source/*源串*/, char* target/*子串*/)//找到返回在源串中的位置,未找到返回-1,如果要改为找到返回1,把return i改为return 1; { int i,j; int s_len=strlen(source); int t_len=strlen(target); if(t_len>s_len) { return -1; } for(i=0;i<=s_len-t_len...

开江县19883941899: C语言利用指针编写函数,实参传递一个字符串,统计字符串字母数字空格和其他字符个数,主函数输入字符串 -
惠耐瑞新: void count_str(char * p) { int i=0,num=0,space=0,letter=0,other=0; while(*(p+i)!='\0') { if(*(p+i)>='0'&&*(p+i)num++; else if(*(p+i)>=65&&*(p+i)=97&&*(p+i)letter++; else if(*(p+i)==32) space++; else other++; i++; } printf("num=%d,space=%d,letter=%d,other=%d\n",num,space,letter,other); }

开江县19883941899: c语言题:应用指针变量,用选择排序法将数组元素按从小到大的顺序排序.程序咋编?急需!!! -
惠耐瑞新: 将所有数放到一个数组 int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 ,有几个元素,n就是几.for(i=0; i<n; i++) { a[i]=录入数值; } Sort(a, n); for(j=0; j<n; j++) { printf("%d",a[ij);//输出的内容就是排序好了的 }//下面方法是用来排序的 ...

开江县19883941899: 用C语言编写程序,要求:指针作为函数参数 -
惠耐瑞新: #include"stdio.h" #include"malloc.h"void move(int *array,int n,int m) {int *p,array_end;array_end=*(array+n-1); for(p=array+n-1;p>array;p--)*p=*(p-1); *array=array_end; if(m>0)move(array,n,m-1); }void main() {int *Arr,n,m,i; printf(...

开江县19883941899: C语言编程用指针编写函数,将一个二进制数(以字符串形式表示)转换为十进制数.请给出运算结果 -
惠耐瑞新: double binTodec(char *str) {int i = 0, j;double p1 = 1, p2 = 0.5;double res = 0; while(str[i]!='\0' && str[i]!='.')j = i++; do{res += (str[j--]-'0')*p1; // 计算整数p1 *= 2;}while(j >= 0); if(str[i] == '.'){do{res += (str[++i]-'0')*p2; // 计算小数p2 /= 2;}...

开江县19883941899: C语言题:编写一个函数求一组数据的和.要求用指针做函数参数,使指针指向一组数据中的第一 -
惠耐瑞新: 展开全部#include int sum(int size,int *p) { int tmp,i; for(i=0;i tmp+=*p++; return tmp; } void main() { int data[]={1,2,3,4,5,6,7,8,8}; printf("sum:%d\n",sum(sizeof(data)/sizeof(int),data)); }

开江县19883941899: 简单的C语言指针编程题 -
惠耐瑞新: #include<stdio.h> void insert(char *s1,char *s2,int f) { int i,j; char t; for(i=f,j=0;s2[j];i++,j++) { t=s1[i]; s1[i]=s2[j]; s2[j]=t;} for(j=0;s2[j];j++,i++) s1[i]=s2[j]; s1[i]='\0'; } int main(void) { char s1[81]="abcdefgh",s2[]="kkkkkkkk"; insert(s1,s2,3); printf("%s\n",s1); return 0; }

开江县19883941899: C语言 用指针编写在数组中查找指定值指针的函数 -
惠耐瑞新: 对于函数:int* find(int a[], int value),其中a为整型数组首地址,value是被检验值.我们可以利用指针a间接引用数组第一个元素的值,并将其与value比较,比较完后,将指针向后移动,再通过间接引用的方式比较下一个元素值,依次下去,直到...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网