//局部变量的生命周期只存在当前的作用域中,离开作用域之后内存释放
int main(int argc, const char * argv[]) {
int a=10;
{
int a=11;
printf("a=%d\n",a); //局部变量 离开括号后 内存释放
}
printf("a=%d\n",a);
return 0;
}
//在内存中先声明的变量,地址放在较大的内存中,但是在变量内部,数据是按小端存储的(本地机器是小端存储)
int main(int argc, const char * argv[]) {
//第一个字节就是变量的地址
int a=10; //0x7fff5fbff80c
int b=11; //0x7fff5fbff808
printf("a的内存地址:%p\nb的内存地址:%p\n",&a,&b); // 内存由大到小寻址,a的地址比b的地址大(但是本地机器确是小端存储)
return 0;
}
//杨辉三角的实现
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1
//1 1
//1 2 1
//1 3 3 1
//1 4 6 4 1
//1 5 10 10 5 1
int a[20][20],n;
char c='n';
do{
printf("请输入打印三角的行数:");
scanf("%i",&n);
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(j==0){
a[i][j]=1;
}
else{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf("%i\t\t",a[i][j]);
}
printf("\n");
}
printf("是否继续输入?(y/n)");
getchar();
scanf("%c",&c);
}while(c=='y');
NSLog(@"测试!程序结束!");
}
return 0;
}
//斐波纳契数:实现兔子生小兔子
int FeiBoNa(int n){
if(n==1)
return 1;
else if(n==2)
return 1;
else
return FeiBoNa(n-1)+FeiBoNa(n-2);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//斐波那契数
int month;
printf("请输入月份:");
scanf("%d",&month);
int num=FeiBoNa(month);
NSLog(@"第%i个月份为:%i",month,num);
}
return 0;
}
//ACM练习题:实现两个反转数的相加
#include <stdio.h>
int FanZhuan(int num){
int sum=0; //反转数
do{
if(num%10==0)
return sum;
sum=sum*10+num%10;
num/=10;
}while(1);
return 0;
}
int main() {
int a,b;
printf("请输入两个数:(a,b)");
scanf("%d,%d",&a,&b);
printf("反转相加后的数制:%d",FanZhuan(a)+FanZhuan(b));
return 0;
}