//兔子生兔子的问题
//规律 1 1 2 3 5 8 13 ...
//问题? 第n个月有多少对兔子
int main01(void)
{
int m_month = 0;
scanf("%d",&m_month);
int sum1 = 1;
int sum2 = 1;
int sum = 0;
int i =0 ;
if( m_month < 3 && m_month > 0){
sum = 1;
}
else{
for(i=3;i<=m_month;i++){
sum = sum1 +sum2;
sum2 = sum1;
sum1 = sum;
}
}
printf("兔子有%d对\n",sum);
return 0;
}
数组解决兔子问题
void Test(){
int i,j;
int a[N]={0};
a[0]=1;
a[1]=1;
for(i=2;i<=N;i++){
a[i]=a[i-1]+a[i-2];
}
for(j=0;j<N;j++){
printf("第%d个月有%d对兔子\n",j+1,a[j]);
}
}
整型数组定义问题
void Arr_demo(){
int arr1[N]={1,2,3,4,5};
int arr2[N]={1};//arr2[0]=1 arr2[4]=0
//部分赋初值 其余元素都为0
int arr3[N]={0};//arr3[0]=0,arr3[1]=0
int arr4[]={1,2,3,4};
printf("arr4[0]=%d,arr4[3]=%d\n",
arr4[0],arr4[3]);
//sizeof字节数
//计算元素个数
printf("%d\n",sizeof(arr4)/sizeof(int));
}
查找
//找到第一个23的位置就输出数组下标
//没有找到输出提示No
void find_value(){
int arr[N]={12,20,56,89,2};
int i =0 ;
for(;i<N;i++){
if(arr[i] == 23){
break;
}
}
if(i<5){
printf("%d\n",i);
}
else{
printf("Nooooooooo");
}
}
字符型数组
void arr_demo01(){
char arr[N]={'a','b','c','d','\0'};
//按照字符串形式输出的时候,abcd
//字符串本身有字符串结束的标识符'\0'
// char arr[N]={'a','b','c','d','e'};
//按照字符串形式输出的时候,abcde+乱码
//直到找到‘\0’为止
char arr1[N]={'a'};
//%c arr1[0]
//%s arr1
char arr2[]={'a','b'};
char arr3[]={"hell"};
//sizeof(arr3) = 5 字符串长度加上1('\0')
char arr4[N]="hell";
//c语言中没有字符串这种类型,表示形式
//为字符型的数组,字符串以'\0'(整数就是0)结束。
printf("%s\n",arr3);
printf("%d\n",sizeof(arr3));
//%s 按照字符串的形式输出
printf("-------------------------\n");
char arr5[N]={'a','\0','c','d','e'};
int i = 0;
for(;i<N;i++){
printf("%c ",arr5[i]);
}
printf("\n");
printf("%s\n",arr5);
}
去掉字符串中间的空格
//char arr[]="hello world";
//helloworld
void delete_Space(){
char arr[]="hello world";
int i = 0;
int j = 0;
int count = 0;//有几个空格
for(;i<sizeof(arr);i++){
if(arr[i] == ' '){
count++;//count空格数量
j = i+1;//j记录的是需要向前移动的字符w的位置
}
}
for(i=j-count;i<sizeof(arr);i++){
arr[i]=arr[i+2];
}
arr[i]=0;//字符串结束记得赋值'\0'
printf("%s\n",arr);
}
去掉字符串中间的空格(没有考虑第二次出现的空格)
" heloo wollew"
void delete_Space(){
char arr[]=" hello world";
int i = 0;
int count = 0;//有几个空格
for(i=0;i<sizeof(arr);i++){
if(arr[i] == ' '){
count++;
}else{
break;
}
}
for(i=0;i<sizeof(arr)/sizeof(char)-count;i++){
arr[i]=arr[i+count];
}
printf("%s\n",arr);
printf("%d\n",count);
}
去掉字符串中所有的空格
int i = 0;
int j =0;
char a[]=" hello world";
for (i = 0; i < strlen(a); i++) {
if (a[i] != ' ') {
a[j++] = a[i];
// a[j]=a[i];
//j++;
}
else if(a[i]==' '){
continue;
}
}
a[j] = '\0';
printf("%s",a);
统计单词的个数
二维数组
void array_demo02(){
int arr[2][2]={1,2,3,4};
int arr1[2][2]={{1,2},{3,4}};
int arr2[][3]={1,2,3,4};//arr[0]
int arr3[2][2]={1,2};
int i=0;
int j=0;
for(;i<2;i++){
for(j=0;j<2;j++){
printf("%p\n",&arr[i][j]);
}
}
}