目录
1、计算学生平均身高
输入学生数并逐个输入学生的身高,输出身高的平均值。
#include<stdio.h>
float average(float arry[],int n);
int main()
{
float average(float arry[],int n);
float height[100],aver;
int i,n;
printf("请输入学生的数量:\n");
scanf("%d",&n);
printf("请输入学生们的身高:\n");
for(i=0;i<n;i++)
scanf("%f",&height[i]);
printf("\n");
aver=average(height,n);
printf("学生的平均身高为:%6.2f\n",aver);
return 0;
}
float average(float array[],int n)
{
int i;
float aver,sum=0;
for(i=0;i<n;i++)
sum+=array[i];
aver=sum/n;
return(aver);
}
运行结果
2、使用指针实现数据交换
输入两个整型数值,将变量a,b中的值交换,然后输出道窗体上。
#include<stdio.h>
int swap(int *p1, int *p2);
int main()
{
int a,b;
int *pointer1, *pointer2;
scanf("%d%d",&a,&b);
pointer1 = &a;
pointer2 = &b;
swap(pointer1, pointer2);
printf("\nThe result is :%d,%d\n",a,b);
return 0;
}
swap(int *p1,int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
运行结果
3、使用指针实现整数排序
输入三个整数,将这三个整数按照由大到小的顺序输出,显示在屏幕上。
#include<stdio.h>
int swap(int *p1,int *p2);
int exchange(int *pt1,int *pt2,int *pt3);
int main()
{
int a,b,c,*q1,*q2,*q3;
puts("Please input three key numbers you want to rank:");
scanf("%d,%d,%d",&a,&b,&c);
q1 = &a;
q2 = &b;
q3 = &c;
exchange(q1,q2,q3);
printf("\n%d,%d,%d\n",a,b,c);
puts("\n Press any key to quit...");
return 0;
}
swap(int *p1,int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
exchange(int *pt1,int *pt2,int *pt3)
{
if(*pt1<*pt2)
swap(pt1,pt2);
if(*pt1<*pt3)
swap(pt1,pt3);
if(*pt2<*pt3)
swap(pt2,pt3);
}
运行结果
4、指向结构体变量的指针
通过指向结构体指针变量实现在窗体上显示学生的信息。
#include<stdio.h>
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
};
int main()
{
struct student student1={
1001,"李xx",'M',25,90.3
};
struct student *p;
p = &student1;
printf("Numbers:%d\n",p->num);
printf("Name:%s\n",p->name);
printf("Sex:%c\n",p->sex);
printf("Age:%d\n",p->age);
printf("Score:%5.1f\n",p->score);
}
运行结果
5、使用指针输出数据元素
通过指针变量输出数组的各元素值,程序运行后,输入10个数字后,可以看到输出的数组元素值。
#include<stdio.h>
int main()
{
int *p,a[10],i;
p=&a[0];
printf("请输入10个数字:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("数组中的元素为:\n");
for(i=0;i<10;i++)
{
printf("%d",*(p+i));
}
printf("\n");
}
运行结果
6、使用指针查找数组中的最大值和最小值。
输入10整型数,自动查找数组中的最大值和最小值,并显示在窗体上。
#include<stdio.h>
int max_min(int a[],int n,int *max,int *min);
int main()
{
int i,a[10];
int max,min;
printf("Input 10 int eger numbers you want to operate:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
max_min(a,10,&max,&min);
printf("\nThe maximun number is:%d\n",max);
printf("The minimun number is :%d\n",min);
}
int max_min(int a[],int n,int *max,int *min)
{
int *p;
*max = *min = *a;
for(p=a+1;p<a+n;p++)
if(*p>*max)
{
*max =*p;
}
else if(*p<*min)
{
*min = *p;
}
return 0;
}
运行结果
7、使用指针连接两个字符串
要求实现将两个已知的字符串连接,放到另外一个字符串数组中,并将连接后的字符串输出到屏幕上。
#include<stdio.h>
#define N 20
char *MyStrcat(char *dstStr,char *srcStr)
{
char *pStr = dstStr;
while(*dstStr !='\0')
{
dstStr++;
}
for(;*srcStr!='\0';dstStr++,srcStr++)
{
*dstStr = *srcStr;
}
*dstStr = '\0';
return pStr;
}
int main()
{
char first[2*N];
char second[N];
char *result = NULL;
printf("输入第一组:");
gets(first);
printf("输入第二组:");
gets(second);
result = MyStrcat(first,second);
printf("结果:%s\n",result);
return 0;
}
运行结果
8、用指针数组构造字符串数组
要求实现输入一个星期中对应的第几天,可显示其英文写法。如,输入‘4’,则显示星期四对应的英文名。
#include<stdio.h>
int main()
{
char *Week[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
int i;
printf("Please enter a number for week\n");
scanf("%d",&i);
printf("The week is :");
printf("%s\n",Week[i-1]);
return 0;
}
运行结果
9、使用指针的指针输出字符串
首先使用指针数组创建一个字符串数组,然后定义指向指针的指针,使其指向字符串数组,并使用其将数组中字符串输出。
#include<stdio.h>
int main()
{
char *strings[]={"赵xx","钱xx","孙xx","李xx","周xx"};
char **p,i;
p=strings;
printf("%s\n",strings[0]);
for(i=0;i<5;i++)
{
printf("%s\n",*(p+i));
}
return 0;
}
运行结果
10、找出最高分
通过结构体变量记录学生成绩,比较得到记录中的最高成绩,输出该学生的信息。
#include<stdio.h>
struct student
{
int num;
char name[20];
float score;
};
int main()
{
int i,m;
float maxscore;
struct student stu[5]=
{
{101,"李明",89},
{102,"苑达",95},
{103,"孙佳",89},
{104,"王子川",85},
{105,"刘春月",75},
};
m=0;
maxscore = stu[0].score;
for(i=1;i<5;i++)
{
if(stu[i].score>maxscore)
{
maxscore = stu[i].score;
m=i;
}
}
printf("最高分是:%5.1f\n",maxscore);
printf("最高分学生的学号是:%d\n",stu[m].num);
printf("最高分学生的姓名是:%s\n",stu[m].name);
}
运行结果