//试验方法确定int型整数的最大最小值
#include<stdio.h> #include <math.h>
int main() { int a = 0; while( a < (a+1) ) { ++a; } printf("%d\n", a);//最大值
a = 0; while( abs(a) < abs(a) + 1 ) { --a; } printf("%d\n", a);//最小值
return 0; }
方法二:一旦溢出变成负数,那么停止循环,i++也不会执行了,然后输出这个负数和比这个最小值“还小”的值,其实就是刚才溢出前的最大值
#include <stdio.h>
int main(void) { int i; for (i = 1; i > 0; i++) NULL; printf("%d %d\n", i, i-1); return 0; }
double型浮点数能精确到多少位小数?
#include <stdio.h>
int main(void) { printf("%f", 10.0/3.0);//3.3333333333333334813630699500208720564842224121093750000000000000000000000000000000000000000000000000 printf("%f", 20.0/3.0); return 0; }
1-1 平均数
#include <stdio.h>
int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%.3f",(a+b+c)/3.0); return 0; }
1-2温度
#include <stdio.h>
int main() { // double f=0.0,c=0.0;//这样为什么会有问题?
float f,c; scanf("%f",&f); c = 5.0*(f-32)/9.0; printf("%.3f",c); return 0; }
改正后没有问题 基础知识不扎实
#include <stdio.h>
int main() { double f = 0.0,c=0.0; scanf("%lf",&f); c = 5.0*(f-32)/9.0; printf("%.3lf",c); return 0; }
1-3 连续和
#include <stdio.h> int main() { int n=0; scanf("%d",&n); int sum=0; sum = (1+n)*n/2; printf("%d",sum); return 0; }
1-4正弦和余弦
#include <stdio.h> #include <math.h> int main() { int n = 0; double r_sin = 0.0,r_cos = 0.0; scanf("%d",&n); n = (n/180)*3.14159265; r_sin = sin(n); r_cos = cos(n); printf("%.3lf,%.3lf",r_sin,r_cos); return 0; }
1-5距离
#include <stdio.h> #include <math.h> int main() { double x1,y1,x2,y2; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); double d_distance = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf("%.3lf",d_distance); return 0; }
1-6偶数
#include <stdio.h> int main() { int n,flag; scanf("%d",&n); flag = (n%2==0)?1:0; if (flag) { printf("yes"); } else { printf("no"); } return 0; }
1-7打折
#include <stdio.h> int main() { int n; double pay; const one = 95; scanf("%d",&n); if (n*one >= 300) { pay = n*one*0.85; } else { pay = n*one; } printf("%.2lf",pay); return 0; }
1-8绝对值
#include <stdio.h> #include <math.h>//错的 abs()不在这里 #include <stdlib.h> #define Abs(x) (x>=0?x:(-x)) int main() { double i; scanf("%lf",&i); // printf("%.2lf\n",(double)abs(i));// 错的,只能用于int等整形 printf("%.2lf\n",Abs(i)); return 0; }
1-9三角形
#include <stdio.h> int main() { int i,j,k; scanf("%d%d%d",&i,&j,&k); if ((i+j>=k)&&(i+k>=j)&&(j+k>=i)) { if (i*i+j*j==k*k||i*i+k*k==j*j||j*j+k*k==i*i) { printf("yes"); } else { printf("no"); } } else { printf("not a triangle"); } return 0; }
1-10 闰年
#include <stdio.h> //闰年:能被4整除且不能被100整除 是闰年 //能直接被400整除也是闰年 int main() { int year; scanf("%d",&year); if ((year%4==0 && year%100!=0) || year%400==0) { printf("闰年"); } else { printf("不是"); } return 0; }
虽然简单,自己敲一遍才是自己的。