1、指针方面
明确不同的指针类型之间的指向关系。
整数或其他非地址量都不能做为地址值给指针变量赋初值。
了解了tolower函数。
#include"stdio.h"
main()
{
float a,b,c,*i,*p,*q,*m;
printf("请输入a,b,c:");
scanf("%f%f%f",&a,&b,&c);
p=&a;
q=&b;
m=&c;
if(a>b)
{
i=p;
p=q;
q=i;
}
if(a>c)
{
i=p;
p=m;
m=i;
}
if(b>c)
{
i=q;
q=m;
m=i;
}
printf("%f\t%f\t%f\n",a,b,c);
printf("%f\t%f\t%f\t\n",*p,*q,*m);
}
比如这个交换3个数字而原数不改变,这个程序就可以用指针实现。
2、数组
如何控制输入数据到数组中,用for循环去做。
对一个冒泡排序法的理解。
对一个数组的初始化。
/*对多名学生的成绩进行排序*/
#include"stdio.h"
#include"stdlib.h"
main()
{
int i=0,j=0,k=0;
int fen[101];
int ren[10];
printf("请输入十个学生成绩");
for(i=0;i<10;i++)
scanf("%d",&ren[i]);//输入10个成绩数据
for(i=0;i<101;i++)//对0到100的分数初始化为0
fen[i]=0;
for(i=0;i<10;i++)
fen[ren[i]]++;//确定每个分数的人数
for(i=0;i<101;i++)
{
if(fen[i]!=0)
{
for(k=0;k<fen[i];k++)//将重复的成绩按统计次数输出
{
ren[j]=i;
j++;
}
}
}
printf("排序结果");
for(i=0;i<10;i++)
printf("%d\t",ren[i]);
}
而二维数组方面用于矩阵。
对二维数组的赋值要表达清楚。
int a[][4]={{1,2},{3},{4}};
int a[][4]={1,2,0,0,3,0,0,0,4};
两个是一样的。
理解多维数组,如int c[3][2][3]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};。
/*在二维数组A(3*4)中每行选择一个最小的数组成一个矩阵B*/
#include"stdio.h"
main()
{
int i,j,k,min,max;
int A[3][4];
int B[3];
printf("请输入一个3*4矩阵A:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&A[i][j]);
}
}
printf("输入的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d\t",A[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++)
{
k=A[i][0];
for(j=0;j<4;j++)
{
if(A[i][j]<k)
k=A[i][j];
}
B[i]=k;
}
printf("B矩阵为\n");
for(i=0;i<3;i++)
printf("%d\t",B[i]);
printf("\n");
}
是一个对二维矩阵的运算。
3、linux下的c语言编程
vi +文件夹/文件名
1.vim 文件名.c(创建一个文件)
2 .按o/a编辑
3.编辑完毕
4.按esc,切换状态
5.按: 输入wq( 保存退出)
6.输入ZZ( 保存退出)
7.gcc+文件名.c
8.运行输入 ./a.out