三角形判断并计算面积
#include<stdio.h>
#include<math.h>
int judge(float,float,float);
void count(float,float,float);
int main(){
float a,b,c;
puts("请输入三角形三边(中间用空格隔开):");
scanf("%f%f%f",&a,&b,&c);
if(judge(a,b,c)==1){
puts("此三边可以构成三角形");
count(a,b,c);
}
else
puts("此三边不可以构成三角形");
return 0;
}
int judge(float a,float b,float c){
if(a+b>c&&a+c>b&&b+c>a)
return 1;
else
return 0;
}
void count(float a,float b,float c){
if(a*a+b*b==c*c||a*a==b*b+c*c||a*a==b*b+c*c)
puts("此三角形为直角三角形");
else if(a==b&&a!=c||b==c&&b!=a||a==c&&a!=b)
puts("此三角形为等腰三角形");
else if(a==b&&a==c&&b==c)
puts("此三角形为等边三角形");
printf("此三角形面积为%.1f\n",sqrt((c*c*a*a-(c*c+a*a-b*b)*(c*c+a*a-b*b)/4)/4));
}
字符串比较(strncmp)
#include<stdio.h>
#include<assert.h>
int main(){
char fruit1[]={"banana"},fruit2[]={"watermelen"};
int a=my_strncmp(fruit2,fruit1);
printf("%d\n",a);
return 0;
}
int my_strncmp ( const char* str1, const char* str2, size_t num )
{
assert(str1 && str2);
if(!num)return 0;
while(--num && *str1 && (*str1 == *str2))
{
str1++;
str2++;
}
return *str1 - *str2;
}
逆序输出数组
#include<stdio.h>
void array_reverse(int a[],int l,int h){
int t;
while(l<h){
t=a[l];
a[l]=a[h];
a[h]=t;
l++;
h--;
}
}
void array_swap(int a[],int n,int k){
array_reverse(a,0,k-1);
array_reverse(a,k,n-1);
array_reverse(a,0,n-1);
}
int main(){
int a[]={1,2,3,4,5,6,7,8,};
int i,n=8,k=3;
printf("交换前:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n");
array_swap(a,n,k);
printf("交换后(分段位置:%d)\n",k);
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n");
return 0;
}
输出素数表
#include<stdio.h>
int main(){
const int maxNumber=25;
int isPrime[maxNumber];
int i,x;
for(i=0;i<maxNumber;i++){
isPrime[i]=1;
}
for(x=2;x<maxNumber;x++){
if(isPrime[x]){
for(i=2;i*x<maxNumber;i++){
isPrime[i*x]=0;
}
}
}
for(i=2;i<maxNumber;i++){
if(isPrime[i]){
printf("%d\t",i);
}
}
printf("\n");
return 0;
}
选择排序
#include<stdio.h>
#include<string.h>
int main(void){
char str[10][100],temp[100];
int i,j,k;
printf("输入10个字符串\n");
for(i=0;i<10;i++)
scanf("%s",str[i]);
printf("\n");
for(i=0;i<9;i++){
k=i;
for(j=i+1;j<10;j++)
if(strcmp(str[k],str[j])<0)
k=j;
if(k!=i){
strcpy(temp,str[k]);
strcpy(str[k],str[i]);
strcpy(str[i],temp);
}
}
for(i=0;i<10;i++)
puts(str[i]);
}
直接插入排序
#include<stdio.h>
#define N 100
int main(void)
{
int n,i,h,a[N];
printf("需要多少整数:\n");
scanf("%d",&n);
printf("输入你要的排序的整数:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++){
do{
if(a[i]>=a[i-1])
break;
else {
h=a[i];
a[i]=a[i-1];
a[i-1]=h;
i--;
}
}while(a[i]<=a[i-1]);
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
条件编译
#include <stdio.h>
#define _DEBUG_
int main(int argc,const char *argv[]){
#ifdef _DEBUG_
printf("hello\n");
#else
printf("world\n");
#endif
return 0;
}