C语言程序设计之中的 指针排序

C语言程序设计之中的 指针排序,第1张

#include<stdioh>

void input(int p,int num)

{

// int a[10]; 不能在子函数中再定义了,要用形参对应的实参, 子函数中定义的是局部变量,函数完成时,变量就释放了。

// for(p=a;p<a+10;p++)

int i;

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

scanf("%d",p+i);

}

void sort(int p,int num)

{

// int a[10]; 同前

int i,j,temp;

// for(p=a;p<a+10;p++)

for(i=0;i<num;i++) //数组下标从0开始

{

for(j=i+1;j<num;j++)

if(p[i]<p[j])

{

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

}

}

void output(int p,int num)

{

//int a[10]; 同前

// for(p=a;p<a+10;p++)

int i;

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

printf("%d ",(p+i));

}

int main()

   int a[10]; 

   input(a,10); 

   sort(a,10); 

   output(a,10); 

   return 0;

}

#include<stdioh>

#define N 4

#define M 4

void stat(int date[N][M],int n,int m,int m,int s) { int i,j;

  for ( i=0;i<n;i++ ) {

    m[i]=s[i]=0;

    for ( j=0;j<M;j++ ) if ( date[i][j]%2==0 ) { m[i]++; s[i]+=date[i][j]; }

  }

}

void main() { int date[N][M],m[N],s[N],i,j;

  for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) scanf("%d",&date[i][j]);

  stat(date,N,M,m,s);

  printf("\n---------------\n");

  for ( i=0;i<N;i++ ) printf("%d ",m[i]); printf("\n");

  printf("\n---------------\n");

  for ( i=0;i<N;i++ ) printf("%d ",s[i]); printf("\n");

}

#include<stdioh>

struct student

{

char name[10];

float math;

float english;

float c;

};

void main(int arbc, char argv[])

{

struct student stu[10], ss = stu;

int i;

float sum[10] = {0}, aver[10] = {0};

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

{

printf("please input student name: \n");

scanf("%s", ss->name);

printf("please input student score of math: \n");

scanf("%f", &(ss->math));

printf("please input student score of english \n");

scanf("%f", &(ss->english));

printf("please input student score of c: \n");

scanf("%f", &(ss->c));

sum[i] += ss->math + ss->english + ss->c;

aver[i] = sum[i] / 3;

ss++;

}

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

{

printf("student[%d]: %s\tsum of score: %f, average: %f\n", i, stu[i]name, sum[i], aver[i]);

}

}

if语句里第一行,把a[i]和a[j]互换,也就是a[0]和a[5]互换,这个能理解吧。

第二行,递归。递归某种程度上可以当做循环来用,这里就是,把i++,j- -,就变成了a[1]和a[4]互换,a[2]和a[3]互换,再继续就结束了,因为3>2

互换之后就变成了654321

这题主要看对递归的理解,多看看书,把递归原理搞清楚

纯手打,

#include<stdioh>

#include<stdlibh>

int main()

{

int c,x,n,ptx=&x,ptn=&n;

long jch=1;

float item,sum=0,t=1,ptsum=∑

printf("请输入n和x:");

scanf("%d %d",ptn,ptx);

for(c=1;c<=n;c++)

{

t=ptx;

jch=c;

item=t/jch;

printf("第%d项的值:%f\n",c,item);

ptsum+=item;

}

printf("sum的值:%f\n",ptsum);

system("PAUSE");

return 0;

}

1请编写函数fun,其功能是计算并输出n门课程的平均值,并统计在平均值以上的课程个数,该个数作为函数值返回。 int fun(float a[],int n) { double sum = 00; double ave = 00; int count = 0; for(int i = 0;i < n;i ++) sum += a[i]; ave = sum/n; for(int i = 0;i n;i ++) if(a[i] >= ave) count ++; return count; } 2请编写函数fun,其功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些 void fun(int m,int a,int n) { n = 0; for(int i = 1;i <= m;i ++) { if(i%7 == 0 && i%11 == 0) { a[n] = i; (n) ++; } } } 3编写函数fun,统计在tt所指字符串中a到z这26个小写字母各自出现的次数,并依次存放在pp所指的数组中 void fun(char tt,int pp[]) { for(int i = 0;i < 26;i++) pp[i] = 0; for(int i = 0;i < strlen(tt);i++) { pp[tt[i] - 'a']++; } } 4请编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换) void fun(char ss) { for(int i = 1;i < strlen(ss);i+=2) { if(ss[i] ='a') { ss[i] += 'A' - 'a'; } } } 5请编写函数fun,用来删除字符串中的所有空格 void fun(char str) { int count = 0; for(int i = 0;i < strlen(str);i++) { if(str[i] != ' ') { str[count] = str[i]; count ++; } else { str[count] = 0; } } }

指针所指对象的数据类型

,和前面的一起说明是指向对象的指针

第二个是乘法运算;

(指针所指对象对的数据类型

)

这一句就是强制转换成对象的指针;

可以直接写成p=(char

)malloc(9),不过不建议用,推荐用

#define

size

9

……

……

……

p=(char

)malloc(size)

或者

const

int

p

=

9;

……

……

……

p=(char

)malloc(size)

这样你使用多次需要修改的话只用改动一个地点,避免遗漏,这种形式也便于记忆!

以上就是关于C语言程序设计之中的 指针排序全部的内容,包括:C语言程序设计之中的 指针排序、c语言 指针程序设计 编写程序实现功能:设有一个4行4列的二维数组date[4][4]、C语言用指针来完成的程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存