一、冒泡排序法:
#include //输入输出函数的调用,必须写。
int main() //定义主函数如下:
{
int i,j,t,n; //i,j负责循环次数,t起到两个数调换顺序的中间数。
n=5; //n表示你要排序的数的个数。
int a[10000]; //定义一个足够大的整形一维数组来填数。
for(i=0;i
scanf("%d",&a[i]); //在该循环中输入你要排列的每个数的数值
for(i=0;i
{
for (j=0;j
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i
printf("%d ",a[i]); //套一个循环让你排完序的数值输出,注意这里%d后有一个空格,以免出现想输出2、3结果输出23的情况。
}
二,寻找最大值及其坐标
#include
int main()
{
int a[1000]; //定义一个足够大的一维整形数组 ;
int max,max_coor,i; //定义整型变量:最大值,最大值的坐标,以及一个用于循环的辅助变量;
int n; //定义该整型变量为你要输入的值个数;
scanf("%d",&n); //输入n的数值
for(i=0;i
scanf("%d",&a[i]); //在该循环中输入所有要输入的数值。
max=a[0]; //重点步骤:要给最大值一个初值,建议如该程序一样赋值,如果赋值为0,而我输入的数值可能是一大堆负数,那么这个程序可能就不正确了。
max_coor=0; //定义最大值坐标为0.
for(i=0;i
if(a[i]>max)
{ //注意要把if后面的多条语句括起来。
max=a[i];
max_coor=i+1; //加一是重点,因为i值从零开始取,而第几个数最大不能回答第零个而要回答第一个,所以要加一。
}
printf("%d\n%d",max,max_coor); //输出最大值,换行输出最大值坐标。
} //注:本题若有多个最大值,只输出第一个最大值的坐标。
三、关于指针
以指针变量之函数参数作返回值A 为例
#include
void fun(int a, int b, int *sum, int *diff, int *product, float *divide) //在自己定义的函数中,要求输入整型变量a,b,以及指针变量*sum、*diff、*product、*divide 以表示求和,求差,求积,求商。
{ //在这里补充说明,正常函数()内的变量和运用函数时输入的变量要一样才可以,但int *pa和 int a 中, pa和&a一一对应,故函数可以正常运行。*pa即改变了a的值
*sum=a+b; //改变了之后主函数sum的值
*diff=a-b; //改变了之后主函数diff的值
*product=a*b; //改变了之后主函数product的值
*divide=((float)(a)/(float)(b)); //改变了之后主函数divide的值 ,注意,因为两个整型数a,b不能除出来一个浮点数*divide,要把a,b临时变为浮点数形式。
}
int main()
{
int c,d,sum,diff,product; //主函数中定义两个整数c,d,整型数:求和,差,积的变量;
float divide; //定义浮点数:求商。
scanf("%d%d",&c,&d); //输入c,d的值,这里的%d之间不用空格,因为你输入23电脑会默认你输入的是23而不是2和3。
fun(c,d,&sum,&diff,&product,÷); //和之前定义的函数,函数对应变量要一一对应。
printf("%d %d %d %.2f",sum,diff,product,divide); //最后输出,注:%5.2f从左到右分别表示这个数占五位,保留点后两位小数,是一个浮点数 。
}
四、关于字符串:
建议背下来#include 对应的几个字符串用的函数,以strlen函数为例(该函数可以确定输入的字符串的长度)讲一下如何运用。
以统计单词的平均长度 为例
#include
#include //将运用字符串函数。
int main()
{
char s[1000]; //定义一个字符数组s。
int num=0,sum=0; //定义整型变量:单词个数,字母个数 初值均为0。
float aver=0; //定义浮点数:单词平均长度
int i; //定义一个用于循环的辅助变量i。
gets(s); //输入字符串。
if(s[0]!=' ') //单独讨论首字符是否为字母的情况。
{
num++; //是字母,单词数,字母数均加一。
sum++;
}
for(i=1;i
{
if(s[i]>='a'&&s[i]<='z')sum++; //如果对应位置为字母,字母数量加一 。
if(s[i]>='A'&&s[i]<='Z')sum++;
if(s[i]==' '&&s[i+1]!=' ')num++; //统计单词个数的方法,从第二个字符开始,只要空格后是字母,就加一。
}
i=strlen(s)-1; //讨论最后一个字符是否为字母
if(s[i]!=' ')
{
sum++; //是字母,字母数加一。
}
if(num==0)aver=0; //若单词数为0,因为除数不能为0,单独提出。
else aver=((float)(sum)/(float)(num));
printf("%d %.2f %d",sum,aver,num); //输出字母总数,单词平均长度(点后两位),单词个数。
}
本次推送只暂时讲述这些内容,希望对大家有用。