138 使用指针实现整数排序
实现输入3个整数,将这3个整数按照由大到小顺序输出,显示在屏幕上
用指针的方式,实现数据的排序,用模块化,来实现。
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b)
{
int temp;
if(*a > *b)
{
temp = *b;
*b = *a;
*a = temp;
}
}
void temp(int *a, int *b, int *c)
{
swap(a, b);
swap(a, c);
swap(b, c);
printf("%d %d %d", *a, *b, *c);
}
void main()
{
int a, b, c;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
temp(&a, &b, &c);
}
139 指向结构体变量的指针
通过结构体指针变量在窗体上显示学生信息
结构体信息:
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
}
代码:
#include <stdio.h>
#include <stdlib.h>
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
} ;
void main()
{
struct student xiaoming = {12, "xiaoming", 'n', 15, 100};
struct student *p;
p = &xiaoming;
printf("num = %d\n", p->num);
printf("name = %s\n", p->name);
printf("sex = %c\n", p->sex);
printf("age = %d\n", p->age);
printf("score = %f\n", p->score);
}
140 使用指针输出数组元素
通过指针变量输出数组的各元素值,运行程序后,输入10个数组,运行后输出。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a[10];
int i, *p;
printf("请输入数组:\n") ;
for(i = 0; i < sizeof(a) / sizeof(int); i++)
{
scanf("%d", &a[i]);
}
printf("输出方式一:\n");
for(i = 0; i <sizeof(a) / sizeof(int); i++)
{
printf(" %d ", *a + i) ;
}
p = &a;
printf("\n输出方式二:\n");
for(; p < (a + 10); p++)
{
printf(" %d ", *p) ;
}
}
141 使用指针查找数列中的最大值和最小值
输入10个数,自动查找这些数中的最大值和最小值
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a[10];
int i, max, min, *p;
printf("请输入数组:\n") ;
for(i = 0; i < sizeof(a) / sizeof(int); i++)
{
scanf("%d", &a[i]);
}
p = &a;
max = min = *p;
for(p++; p < (a + 10); p++)
{
if(*p > max)
{
max = *p;
}
if(*p < min)
{
min = *p;
}
}
printf("min = %d\n", min);
printf("max = %d\n", max);
}
142 使用指针的指针输出字符串
使用指针数组创建一个字符串数组,然后定义指向指向的指针,使其指向字符串数组,并使用其输出数组中的字符串。
方式一:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *str[] = { "aaaa", "bbbb", "ccccc", "ddddd", "ffffff" };
char **p;
int i;
p = str;
for (; p < (str +5); p++)
{
printf("%s\n", *p);
}
}
方式二:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *str[] = { "aaaa", "bbbb", "ccccc", "ddddd", "ffffff" };
char **p;
int i;
p = str;
for (i = 0; i < 5; i++)
{
printf("%s\n", *(p + i));
}
}