#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语言用指针来完成的程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)