#include <stdio.h>
#include <math.h>
int main(void){ double e, pi;
double funpi(double e);printf("Enter e:");scanf("%lf",&e);
pi =funpi(e);printf("pi = %f\n", pi);return0;}
double funpi(double e){ int denominator, flag;
double item, sum;
flag =1;
denominator =1;
item =1.0;
sum =0;while(fabs(item)>= e){
item = flag *1.0/ denominator;
sum = sum + item;
flag =-flag;
denominator = denominator +2;}return sum *4;}
#include <stdio.h>
#include <math.h>
int main(void){ int count, m;
int prime(int m);
count =0;for(m =2; m <=100; m++){if(prime(m)!=0){printf("%6d", m );
count++;if(count %10==0)printf("\n");}}printf("\n");}
int prime(int m){ int i, n;if( m ==1)return0;
n =sqrt(m);for( i =2; i <= n; i++)if(m % i ==0){return0;}return1;}
递归求n!
/*递归求n!*/
#include <stdio.h>
double fact(int n);
int main(void){ int n;scanf("%d",&n);printf("%f",fact(n));return0;}
double fact(int n)/* 函数定义 */{
double result;if(n==1|| n ==0)/* 递归出口 */
result =1;else
result = n *fact(n-1);return result;}
/*选择排序法*/
#include<stdio.h>
int main(){
int i,index,k,n,temp;
int a[10];/*输入*/scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}/*排序*/for(k=0;k<n-1;k++){
index=k;
for(i=k+1;i<n;i++)if(a[i]<a[index])
index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;}/*输出*/for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");return0;}
#include <stdio.h>
int main(void){
int i;
int fib[10]={1,1};/* 数组初始化 */for( i =2; i <10; i++)
fib[i]= fib[i -1]+ fib[i -2];for( i =0; i <10; i++){printf("%6d", fib[i]);if((i +1)%5==0)/* 5个数换行 */printf("\n");}return0;}
#include<stdio.h>
int main(void){ int i, k;
char line[80];printf("Enter a string: ");
k =0;while((line[k]=getchar())!='\n')
k++;
line[k]='\0';
i =0;
k = k -1;while( i< k ){if( line[i]!= line[k])break;
i++;
k--;}if( i >= k)printf("It is a plalindrome\n");elseprintf("It is not a plalindrome\n");return0;}
输入10个整数,计算这些数的平均值,再输出所有大于平均值的数。
#include<stdio.h>
int main(void){ int i; double average, sum;/* average存放平均值 */
int a[10];printf("Enter 10 integers: ");
sum =0;for( i =0; i <10; i++){scanf("%d",&a[i]);
sum = sum + a[i];}
average = sum /10;printf("average = %.2f\n", average );printf(">average:");for( i =0; i <10; i++){if( a[i]> average )printf("%d ", a[i]);}printf("\n");return0;}
有一个3*4的矩阵,要求编程序求出其中最大值的那个元素的值及其所在的行号和列号。
#include <stdio.h>voidmain(){ int i, j, row=0, colum=0, max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];for(i=0; i<=2; i++)for(j=0; j<=3; j++)if(a[i][j]>max){ max=a[i][j];
row=i;
colum=j;}printf("max=%d,row=%d, colum=%d\n", max, row, colum);}
#include <stdio.h>
int main(void){ int i, flag, x; int a[5];printf(“Enter 5 integers: ");for(i =0; i <5; i++)scanf("%d",&a[i]);printf(“Enter x: ");scanf("%d",&x);
flag =0;for(i =0; i <5; i++)if(a[i]== x){printf("Index is %d\n", i);
flag =1;break;}if(flag ==0)printf("Not Found\n");return0;}
将二维数组行列元素互换,存到另一个数组中。
#include <stdio.h>main(){ int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;printf("array a:\n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);
b[j][i]=a[i][j];}printf("\n");}printf("array b:\n");for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}}
指针作为函数参数模拟角色互换
#include<stdio.h>voidswap2( int *px, int *py );
int main(void){
int a =1, b =2;
int *pa =&a,*pb =&b;swap2(pa, pb);printf(“After calling swap2: a=%d b=%d\n”, a, b);return0;}swap2(&a,&b);voidswap2(int *px, int *py){ int t;
t =*px;*px =*py;*py = t;}
分别使用指针计算数组元素之和
int main(void){
int i, a[10],*p;
long sum =0;printf("Enter 10 integers: ");for(i =0; i <10; i++)scanf("%d",&a[i]);for( i =0; i <10; i++)
sum = sum + a[i];printf("calculated by array, sum=%ld \n", sum);
sum=0;for(p = a; p <= a+9; p++)
sum = sum +*p;printf("calculated by pointer, sum=%ld \n", sum);return0;}
#include<stdio.h>
int main(void){
int i,k,temp;
char str[80];printf("input a string:");
i=0;while((str[i]=getchar())!='\n')
i++;
str[i]='\n';
k=i-1;for(i=0;i<k;i++){
temp=str[i];
str[i]=str[k];
str[k]=temp;
k--;}for(i=0;str[i]!='\0';i++)putchar(str[i]);return0;}
利用指针找最大值:利用指针指向两个整型变量,并通过指针运算找出两个数中的最大值,输出。
#include<stdio.h>
int main(){
int max,x,y,*pmax,*py,*px;scanf("%d%d",&x,&y);
px=&x;
py=&y;
pmax=&max;*pmax=*px;if(*pmax<*py)*pmax=*py;printf("max=%d\n",max);return0;}
#include<stdio.h>
int main(void){
struct emp{
char name[10];
float jbgz;
float fdgz;
float zc;};
struct emp s[10];
int i,n;printf("n=");scanf("%d",&n);for(i=0;i<n;i++)scanf("%s%f%f%f",s[i].name,&s[i].jbgz,&s[i].fdgz,&s[i].zc);/*%s对应的取地址不用符号“&”*/for(i=0;i<n;i++)printf(“%s,实发工资:%.2f\n",s[i].name,s[i].jbgz+s[i].fdgz-s[i].zc);return0;}
结构体计算时间:一个时间再过n秒后的时间
#include <stdio.h>
int main(){
int ss;
struct time{
int h,m,s;};
struct time s1;scanf("%d:%d:%d",&s1.h,&s1.m,&s1.s);scanf("%d",&ss);
s1.s=s1.s+ss;if(s1.s>=60){
s1.m=s1.s/60+s1.m;
s1.s=s1.s%60;}if(s1.m>=60){
s1.h=s1.m/60+s1.h;
s1.m=s1.m%60;}if(s1.h>=24){
s1.h=s1.h%24;}printf("%d:%d:%d\n",s1.h,s1.m,s1.s);}