资源描述
初学C语言常用简单程序代码
素数的筛选
#include <stdio.h>
#include <math.h>
#define N 1000
int main(int argc, char* argv[])
{
int i,j,num[N];
for(i=0;i<N;i++)
num[i]=i+1;
for(i=1;i<(int)sqrt((double)N);i++)
{
if(num[i])
{
for(j=i+1;j<N;j++)
{
if(num[j])
if(num[j]%num[i]==0)
num[j]=0;
}
}
}
for(i=1;i<N;i++)
if(num[i])
printf(" %d",num[i]);
return 0;
}
输出时分秒
#include <stdio.h>
main()
{
int x,s,t,d;
scanf("%d",&x);
s=x%60;
t=(x/60)%60;
d=(x/60)/60;
printf("%d时%d分%d秒",d,t,s);
}
三个数的交换
#include <stdio.h>
void main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
printf("The original number:a=%d,b=%d,c=%d\n",a,b,c);
t=a,a=b,b=t;
t=a,a=c,c=t;
printf("after swap:a=%d,b=%d,c=%d",a,b,c);
}
switch语句的运用
#include <stdio.h>
main()
{
int a,m;
printf("please input a number:");
scanf("%d",&a);
switch(a/10)
{
case 10:
case 9: m=5; break;
case 8: m=4; break;
case 7:m=3; break;
case 6:m=2; break;
default:m=1;
}
printf("m=%d",m);
}
判断奇数和偶数
#include <stdio.h>
main()
{
int x;
printf("Please input a number: ");
scanf("%d",&x);
if(x%2==0)
printf("this is a oushu!");
else
printf("this is a jishu!");
}
小写改大写,若是大写则不变
include <stdio.h>
main()
{
char c1,c2;
printf("Input a letter\n");
scanf("%c",&c1);
c2=('a'<=c1&&c1<='z')?(c1-'a'+'A'):c1;
printf("%c",c2);
getchar();
return 0;
}
输入一个数,输出这个数是几位数
#include <stdio.h>
main()
{
int x,n;
printf("please input a number:");
scanf("%d",&x);
n=0;
while(x!=0)
{
x=x/10;
n++;
}
printf("%d",n);
}
输入一个数,判断它是几位数,然后逆序输出
#include<stdio.h>
int main()
{
int num;
int len = 0;
int temp =0;
printf("Please input a number:\n");
scanf("%d",&num);
while((num % 10)!=0)
{
temp = temp*10+(num%10);
len++;
num = num/10;
}
printf("length = %d\n",len);
printf("Reverse is %d", temp);
}
打印水仙花数
#include <stdio.h>
main()
{
int x, a,b,c;
for(x=100;x<=999;x++)
{
a=x%10;
b=(x/10)%10;
c=x/100;
if(x==a*a*a+b*b*b+c*c*c)
{
printf("%5d",x);
}
}
printf("\n");
}
判断闰年
#include "stdio.h"
main()
{
int k,flag,n=0;
for(k=1980;k<=2880;k++)
{
flag=(k%4==0)&&(k%100!=0)||(k%400==0);
if(flag)
{ printf("%5d",k);
n++;
if(n%10==0)
printf("\n");
}
}
printf("\n");
}
求1-3+5-7...-99+101的值
#include <stdio.h>
main()
{
int sum,i,t;
sum=1;
t=1;
for(i=3;i<=101;i=i+2)
{
t=-t;
sum=sum+t*i;
}
printf("sum=%d",sum);
}
求前n项和
#include <stdio.h>
main()
{
float s,t;
int n,i,fz,fm;
s=0;
fz=2;
fm=1;
printf("Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=(1.0*fz)/fm;
s=s+t;
fz=fz+fm;
fm=fz-fm;
}
printf("s=%f\n",s);
}
开发一个程序求全班学生某门课的平均成绩,要求程序每次运行时班级人数可为任意
/*用标记值来指示数据输入的结束*/
#include <stdio.h>
main()
{
float average,total;
int counter,score;
total=0.0;
counter=0;
printf("输入成绩,-1表示结束:");
scanf("%d",&score);
while(score!=-1) /*用-1表示输入的结束,同时循环输入分数*/
{
total=total+score;
counter++;
printf("输入下一个成绩,-1表示输入结束:");
scanf("%d",&score);
}
if(counter!=0)
{
average=total/counter;
printf("全班平均成绩为:%.2f\n",average);
}
else
printf("没有输入成绩\n");
return 0;
}
求二元一次方程的根
#include <stdio.h>
#include <math.h>
main()
{
float a=4,b=-40,c=91;
float x1,x2;
float delta;
delta=sqrt(b*b-4.0*a*c);
x1=(-b+delta)/(2.0*a);
x2=(-b-delta)/(2.0*a);
printf("x1=%f x2=%f\n",x1,x2);
}
if语句的运用
#include <stdio.h>
main()
{
int a,b,c,s,w,t;
s=w=t=0;
a=-1;
b=c=3;
if(c>0)
s=a+b;
if(a<=0)
{
if(b>0)
if(c<=0)
w=a-b;
}
else
if(c>0)
w=a-b;
else
t=c;
printf("s=%d, w=%d,t=%d",s,w,t);
}
输入学生的生日,输出他的实足年龄
#include <stdio.h>
main()
{
int y0,m0,d0,y1,m1,d1,age;
printf("\nplease input birthday (yyyy/mm/dd):");
scanf("%d/%d/%d ",&y0,&m0,&d0);
printf("\nplease input current day(yyyy/mm/dd):");
scanf("%d/%d/%d ",&y1,&m1,&d1);
if((m1>m0) || (m1=m0 && d1>=d0))
age=y1-y0;
else
age=y1-y0-1;
printf("age=%d \n",age);
}
指针变量作为函数参数,实现两数的交换
#include <stdio.h>
void sswap(int *x,int *y);
main()
{
int a=10,b=20;
printf("before swap:a=%d,b=%d\n",a,b);
sswap(&a,&b);
printf("after swap:a=%d,b=%d\n",a,b);
}
void sswap(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
通过函数调用输出两个实型数中最大的一个
#include <stdio.h>
float *f(float *px,float *py)
{
if(*px>*py)
return px;
return py;
}
main()
{
float x=10.0,y=20.0,*a=&x,*b=&y;
printf("*a=%f,*b=%f,max=%f\n",*a,*b,*f(a,b));
}
计算并输出一个数组中所有元素的和,最大值,最小值,值为奇数的元素个数
编写一个函数,将一个字符串中的字符全部转成大写
#include <stdio.h>
void Lower2Upper(char *str)
{
char *p=str;
while(*p!=0)
{
if(*p<='z'&&*p>='a')
*p=*p-32;
p++;
}
}
main()
{
char s[10]="Hello!";
int i;
Lower2Upper(s);
for(i=0;i<10;i++)
printf("%c",s[i]);
}
计算一个字符在一个字符串中出现的次数
#include <stdio.h>
int count(char ch,char *str)
{
char *p=str;
int num=0;
while(*p!='\0')
if(*p++==ch)
num++;
return num;
}
main()
{
char ah='a';
char s[]="haowareayou";
printf("the number is:");
printf("%d\n",count('a',s));
}
删除一维数组中所有相同的数
#include <stdio.h>
void unique(int *a,int *n)
{
int k=1;
int i,m;
m=a[0];
for(i=0;i<*n;i++)
{
if(a[i]>m)
{
a[k++]=a[i];
m=a[i];
}
}
*n=k;
}
main()
{
int a[10];
int n=10,i;
printf("input a list number:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Before delete:...\n");
for(i=0;i<n;i++)
printf("%d",a[i]);
unique(a,&n);
printf("after delete....\n");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
}
将字符串按字典顺序输出
#include <stdio.h>
#include <string.h>
#define N 5
void sort(char *name[],int n);
void prn(char *name[],int n);
void main()
{
char *name[]={"China","America","Australia","France","German"};
sort(name,N);
prn(name,N);
}
void sort(char *name[],int n)
{
char *pt;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)
k=j;
if(k!=i)
{
pt=name[i];
name[i]=name[k];
name[k]=pt;
}
}
}
void prn(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
有n个学生,每个学生考m门课程,要求编一程序,能检查n个学生有无不及格的课程,如果有某一学生有一门或一门以上课程不及格,就输出该学生的号码和其全部成绩
#include <stdio.h>
#define N 5
#define M 4,int col);
void prt(float *s,int no,int len);
main()
{
float a[N][M]={{78,99,89,87},{67,59,87,77},{86,53,59,95},{77,88,57,95},{78,75,87,95}};
score(a,N,M);
}
void score(float (*p)[M],int row,int col)
{
int i,j;
int passed;
for(i=0;i<row;i++)
{
passed=1;
for(j=0;j<col;j++)
if(p[i][j]<60.0)
passed=0;
if(!passed)
prt(p[i],i,col);
}
}
void prt(float *s,int no,int len)
{
float *p;
printf("NO.%d",no);
for(p=s;p<s+len-1;p++)
printf("%5.1f",*p);
printf("\n");
}
展开阅读全文