gcc、gdb
整數(shù)/整數(shù)=整數(shù)盈蛮,浮點數(shù)/浮點數(shù)=浮點數(shù),整數(shù)-浮點數(shù)=浮點數(shù)
變量在未賦值之前的值是不確定的。特別地智厌,它不一定等于0.
n++會使用加1前的值計算表達式,++n會使用加1后的值計算表達式
比較大的數(shù)組盡量聲明在main函數(shù)外戈鲁,否則程序可能無法運行
fgetc(fin)讀取一個打開的文件fin恬砂,讀取一個字符,返回一個int值官研,如果要從標準輸入讀取一個字符秽澳,可以用getchar,等價于fgetc(stdin)戏羽,fgets(buf,maxn,fin)讀取完整的一行
調(diào)用棧(Call stack)描述 函數(shù)之間的調(diào)用關系担神,調(diào)用棧由棧幀(Stack Frame)組成,每個棧幀對應著一個未運行完的函數(shù)始花,在gdb中可以用backtrace命令打印所有棧幀信息妄讯。若要用p命令打印一個非當前棧幀的局部變量,可以用frame命令選擇另一個棧幀
把數(shù)組作為參數(shù)傳遞給函數(shù)時酷宵,實際上只有數(shù)組的首地址作為指針傳遞給了函數(shù)亥贸,需要另加一個參數(shù)表示元素個數(shù)
若p是指針,k是正整數(shù)浇垦,p+k就是指針p后面第k個元素炕置,p-k是p前面的第k個元素
#include <stdudio.h>
#include <time.h>
#define INF 1000000000
#definr maxn 105
int main()
{
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
int a,b,n=0,m,min=INF,max=-INF,x;
FILE *fin,*fout;
fin = fopen("data.in","rb");
fout = fopen("data.out","wb");
while(fscanf(fin,"%d",&x)==1 && n)
fprintf(fout,"%d %d",min,max);
fclose(fin);
fclose(fout);
scanf("%d%d",&n,&m);
a = (4*n-m)/2;
b = n-a;
if (m%2 ==1 || a<0 ||b<0)
printf("No answer\n");
else
printf("%d %d\n",a,b);
for(int i=1;i<=n;i++)
{
printf("%d\n",i);
if (i<10) continue;
if (i>100) break;
}
long long n1 = n;
int count=0
while(n>1)
{
if (n%2==1) n=n*3+1;
else n/= 2;
count++;
}
int f = floor(sqrt(n)+0.5);
printf("time used = %.2f\n",(double)clock()/CLOCKS_PER_SEC);
int a[maxn];
while(scanf("d",&x)==1)
a[n++]=x;
int b[maxn][maxm];
tot = b[x=0][y=n-1] =1;
char s[20];
scanf("%s",s);
if(strchr(s,"a"))
sprintf(s[strlen(s)-1]);
struct Point{double x,y;};
double dist(struct Point a,struct Point b)
{
return hypot(a.x-b.x,a.y-b.y);
}
typedef struct{double x,y;}Point;
double dist(Point a,Point b)
{
return hypot(a.x-b.x,a.y-b.y);
}
return 0
}
#include<studio.h>
void swap(int*a,int*b)//用int*a聲明的變量a是指向int型變量的指針
{
int t =*a;*a=*b;*b=t;
}
int main()
{
int a=3,b=4;
swap(&a,&b);//變量名前面加&得到的是該變量的地址
printf("%d %d\n",a,b);
return 0;
}