小总结:
1.数组名是一种地址常量,存放数组内存空间的首地址
2.数组元素的引用要指定下标
数组名 【下标】
3.一维数组初始化
类型名 数组名 【数组长度】= {出值表}
eg.int a [3] = {1,2,3};
规定:c语言只有静态存储数组才能初始化,但c编译系统都被允许赋初值
,静态储存的数组没有初始化直接赋值零
如果只对部分元素初始化,数组长度是不能省略的
4.斐波那数列
f [0] = f [1] =1
f [n] =f [n-1] =f [n-2]
5.注意:
<1>for () 后面没有;
<2> define SIZE 5 -----5指输入个数
6. 投票情况统计重点:count [response] ++;
7. 二维数组找出最大小值及行列下标:
先输入数:
printf ("");
for()
for()
scanf ("%d", &a[][])
按矩阵形式输出:
for () {
for ()
printf ("%4d", a[i][j]);
printf ("\n");
}
找最值以最大值为例:
先假设a[0][0]最大
如果a[i][j]比假设值大
再假设a [i][j]是新的最大值row=i;col=j;
8.转置行列互换
temp=a[i][j];
a [i][j] =a [j][i];
a[i][j] =temp;
9.闰年:能被4整除但不能被100整除或者能被400整除
闰年二月29天平年二月28天
10.回文就是字符串中心对称
eg:abcba abccba
11.结束符’\n’
12.
printf("%p\n", &a[0]);
printf("%p\n", &a[1]) ;这两行代码:能实现储存方式
一维数组
数组的定义和使用
//数组的定义和使用
/*数组
需要处理的数据
相同类型
若干变量
有序形式*/
//数据类型 数组名【元素个数】={值1,值2}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main()
{
//1.输出指定位置元素
int a[3]={1,2,3};//定义数组 下标为个数
printf("%d\n", a[0]);//下标从零开始 下标表示其中一个元素
//2.数组元素进行计算
a[0]=a[2];
a[1]=a[0]*2;
for (int i=0;i<3;i++)
{
printf("%d\n",a[i]);
}
//0k了
//3.数组在内存中储存方式和大小
printf("%p\n", &a[0]);
printf("%p\n", &a[1]) ;
return 0;
}
小猪称重
//小猪称重
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define SIZE 5
int main()
{
int a[SIZE];
for (int i=0;i<SIZE;i++)
{
scanf ("%d", &a[i]);
}
int max=0;
for(int i=0;i<SIZE;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
printf("最重小猪体重为:%d\n", max);
return 0;
}
//错误注意事项:
//1.for() 后面没有;
// 2.printf在for{}外面
//3.define SIZE 5指输入五个数(之前错误写100却运行没有输入100个数)
输出斐波那契数列
//输出斐波那契数列
#include <stdio.h>
int main (void)
{
int i;
int fib [10] = {1,1};
for (i=2;i<10;i++)
fib [i] =fib [i-1] +fib [i-2];
for (i=0;i<10;i++){
printf ("%6d",fib [i]);
if ((i+1)%5==0)
printf ("/n");
}
return 0;
}
输出所有大于平均值的数
/*输出所有大于平均值的数*/
#include <stdio.h>
int main (void)
{
int i;
double average,sum;
int a [10];
printf ("Enter 10 integers:");
sum=0;
for (i=0;i<10;i++){
scanf("%d", &a[i]);
sum=sum+a[i];
}
average=sum/10;
printf("averge=% .2f\n", average);
printf(">average:");
for (i=0;i<10;i++){
if(a[i]>average)
printf("%d",a[i]);
}
printf ("\n");
return 0;
}
输入一个以回车符为结束标志字符串
#include <stdio.h>
int main (void)
{
int i,number;
char str [10];
//输入字符串
printf ("Enter a string:");
i=0;
while ((str [i] =getchar ())!='\n')
i++;
str [i] ='\0';
//判断是否为数字字符并进行转换
number=0;
for (i=0;str [i]!='\0';i++)
if (str [i]>='0'&&str [i]<='9')
number=number*10+str [i]-'0';
printf ("digit=%d\n",number);
return 0;
}
统计字符串中数学字符的个数
//统计字符串中数学字符的个数
#include <stdio.h>
int main (void)
{
int count,i;
char str [80]="apple12345";
//输入字符串
printf ("Enter a string:");
i=0;
while ((str [i] =getchar())!= '\n')
i++;
str [i]='\0';//将'\0'存入数组
//统计字符串中数字字符个数
count =0;
for (i=0;str [i]!='\0';i++) //循环条件:str [i]不等于'\0'
if (str [i] <='9'&&str [i] >='0')
count++;
printf ("count=%d\n", count);
return 0;
}
选择法排序
//选择法排序
#include <stdio.h>
int main(void)
{
int i,index,k,n,temp;
int a [10];
printf("Enter n:");
scanf("%d", &n);
printf("Enter %d integers:",n);
for(i=0;i<n;i++)
scanf("%d", &a[i]);
for (k=0;k<n-1;k++){
index=k;
for (i=k+1;i<n;i++)
if(a[i]<a[index]) index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
}
printf ("After sorted:");
for (i=0;i<n;i++)
printf ("%d", a[i]);
printf("\n");
return 0;
}
在数组中查找一个给定的数
//在数组中查找一个给定的数
#include <stdio.h>
int main (void)
{
int i,flag,x;
int a[5];
printf("Enter 5 integers:");
for(i=0;i<5;i++)
scanf("%d", &a[i]);
printf("Enter x:");
scanf ("%d", &x);
flag=0;
for(i=0;i<5;i++)
if (a[i] ==x){
printf ("Index is %d\n", i);
flag=1;
break;
}
if(flag==0)
printf ("Not Found\n");
return 0;
}
找出数组的最小值和它所对应的下标
//找出数组的最小值和它所对应的下标
#include <stdio.h>
int main(void)
{
int i,index,n;
int a [10];
printf ("Enter n:");
scanf ("%d", &n);
printf ("Enter %d integers:",n);
for (i=0;i<n;i++)
scanf("%d", &a[i]);
//找最小值a[index]
index=0;
for (i=1;i<n;i++)
if (a[i]<a[index])
index=i;
printf("min is %d\tsub is %d\n",a[index],index);
return 0;
}
二维数组
方阵转置
//方阵转置
#include <stdio.h>
int main(void)
{
int i,j,n,temp;
int a[6][6];
//给二维数组赋值
printf ("Enter n:");
scanf ("%d", &n);
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i][j]=i*n+j+1;//给数组元素赋值
//行列互换
for (i=0;i<n;i++)
for (j=0;j<n;j++)
if(i<=j){ //只遍历上三角阵 //也可以 for (i=0;i<n;i++)
// for (j=i;j<n;j++){
// ……
// }
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
//按矩阵形式输出a
for (i=0;i<n;i++){ //所有行的循环
for (j=0;j<n;j++) //输出低i行的所有元素
printf("%4d", a[i][j]);
printf ("\n");
}
return 0;
}
计算某个日期对应该年的第几天
// 计算某个日期对应该年的第几天
#include <stdio.h>
#include <math.h>
int day_of_year (int year,int month,int day) //主函数调用day_of_year()函数
{
int k,leap;
int tab[2][13] = { //初始化,天数赋值给数组
{0,31,28,31,30,31,30,31,31,30,31,30,31 },
{0,31,29,31,30,31,30,31,31,30,31,30,31 }
};
//判断闰年,为闰年leap=1;非则leap=0
//闰年:能被4整除不能被100整除或能被400整除
leap=(year %4==0 &&year%100!=0 ||year%400==0);
//计算
for (k=1;k<month;k++)
day=day+tab[leap][k];
return day;
}
找出矩阵中的最大值及其行下标和列下标
//找出矩阵中的最大值及其行下标和列下标
#include <stdio.h>
int main(void)
{
int col,i,j,row;//row column分别代表这个元素的行和列 max 代表这个元素的值
int a[3][2];//[3]行 [2]列
//将输入的数存入二维数组
printf ("Enter 6 integers:\n");
for (i=0;i<3;i++)
for (j=0;j<2;j++)
scanf ("%d", &a[i][j]);
//按矩阵的形式输出二维数组a
for(i=0;i<3;i++){
for (j=0;j<2;j++)
printf ("%d", a[i][j]);
printf ("\n");
}
//找出最大值a[col][row]
row=col=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(a[i][j]>a[row][col]){
row=i;
col=j;
}
printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);
return 0;
}
自我总结
时间不够了,还得继续加油,欠下了好多知识,现在不学习等着什么时候后悔!!!再难也得坚持再不会也得学完再慢也得学懂。
小总结:
1.数组名是一种地址常量,存放数组内存空间的首地址
2.数组元素的引用要指定下标
数组名 【下标】
3.一维数组初始化
类型名 数组名 【数组长度】= {出值表}
eg.int a [3] = {1,2,3};
规定:c语言只有静态存储数组才能初始化,但c编译系统都被允许赋初值
,静态储存的数组没有初始化直接赋值零
如果只对部分元素初始化,数组长度是不能省略的
4.斐波那数列
f [0] = f [1] =1
f [n] =f [n-1] =f [n-2]
5.注意:
<1>for () 后面没有;
<2> define SIZE 5 -----5指输入个数
6. 投票情况统计重点:count [response] ++;
7. 二维数组找出最大小值及行列下标:
先输入数:
printf ("");
for()
for()
scanf ("%d", &a[][])
按矩阵形式输出:
for () {
for ()
printf ("%4d", a[i][j]);
printf ("\n");
}
找最值以最大值为例:
先假设a[0][0]最大
如果a[i][j]比假设值大
再假设a [i][j]是新的最大值row=i;col=j;
8.转置行列互换
temp=a[i][j];
a [i][j] =a [j][i];
a[i][j] =temp;
9.闰年:能被4整除但不能被100整除或者能被400整除
闰年二月29天平年二月28天
10.回文就是字符串中心对称
eg:abcba abccba
11.结束符’\n’
12.
printf("%p\n", &a[0]);
printf("%p\n", &a[1]) ;这两行代码:能实现储存方式