统计最高最低平均分
功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min
代表最低分,avg代表平均分。
# include <stdio.h>
int main(void)
{
/*-------------------------------------------------------
功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min
代表最低分,avg代表平均分。
-------------------------------------------------------*/
/***********FOUND***********/
float a[10],min,max,avg;
int i;
printf("input 10 score:");
for(i=0;i<=9;i++)
{
printf("input a score of student:");
/***********FOUND***********/
scanf("%f",&a[i]);
}
max=min=avg=a[0];
for(i=1;i<=9;i++) {
/***********FOUND***********/
if(min>a[i])
min=a[i];
if(max<a[i])
max=a[i];
avg=avg+a[i];
}
avg=avg/10;
printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);
return 0;
}
成绩等级分类
给出一百分制成绩,要求输出成绩等级‘A’,’B’,’C’,’D’,’E’。
90分以上为‘A’,8089分为’B’,7079分为’C’,60~69分为’D’,
60分以下为’E’。
要求:用switch语句完成程序。
# include <stdio.h>
int main(void)
{
/**
给出一百分制成绩,要求输出成绩等级‘A’,’B’,’C’,’D’,’E’。
90分以上为‘A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,
60分以下为’E’。
要求:用switch语句完成程序。
------------------------------------------------*/
/**********Program**********/
int score;
printf("输入一个数字");
scanf("%d",&score);
if(score>100||score<0)
{
printf("\n输入有误,请重输");
scanf("%f",&score);
}
score= score/10;
switch(score)
{
case 10:
case 9:printf("grade= A ");break;
case 8:printf("grade= b ");break;
case 7:printf("grade= c ");break;
case 6:printf("grade= d ");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("grade= e ");
}
return 0;
/********** End **********/
}
求和
# include <stdio.h>
int main(void)
{
int n;
int i;
double sum= 0.0;
int sign = 1;
printf("输入一个n,求f(n):");
scanf("%d",&n);
for(i=1; i<=n;i++)
{
sum += sign*1.0/i;
sign = -sign;
}
printf("计算得:f(%d)=%f\n", n, sum);
return 0;
}
求矩阵的转置
#include <stdlib.h>
#include <stdio.h>
void convert(int a[][4],int b[][2]){
int i,j;
for(i=0;i<2;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
}
void main()
{
int a[2][4]={1,3,5,7,
2,4,6,8},b[4][2];
int i;
convert(a,b);
/***********SPACE***********/
for(i=0;i<4;i++)
printf("%2d %2d\n",b[i][0],b[i][1]);
}
冒泡排序(对数组进行从小到大排序)
#include <stdlib.h>
#include <stdio.h>
void main() {
int i,j,temp;
int n=6;//数组里的六个数
int a[]={2,3,4,1,5,6};
for(i=0; i<n-1; i++) {
for(j=0; j<n-1-i; j++) {
if(a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
int m;
printf("从小到大为:\n");
for(m=0;m<6;m++)//数组里的六个数
printf("%d\n",a[m]);
}
比较字符串长短
给定程序中,程序的功能是:输入2个字符串,输出2个字符串中
较短串的长度。请填空。
/*-------------------------------------------------------
给定程序中,程序的功能是:输入2个字符串,输出2个字符串中
较短串的长度。请填空。
-------------------------------------------------------*/
#include <string.h>
#include <stdio.h>
void main() /*注意:请不要修改或删除程序行*/
{
char a1[20],a2[20];
int l1,l2,num;
printf("输入第一个字符串:");
gets(a1);
printf("输入第二个字符串:");
gets(a2);
/***********SPACE***********/
l1=strlen(a1);
/***********SPACE***********/
l2=strlen(a2);
/***********SPACE***********/
num=(l1<l2)?l1:l2;//比较l1和l2的大小,如果l1小于l2,num=l1
printf("%d",num);
}
调用函数fun判断是否为素数
#include <stdio.h>
int fun(int n){
int i=0;
for(i=2;i<n;i++)
if(n%i==0)
return 0;
if(i==n)
return 1;
}
void main()
{
int n,s;
printf("Please enter N: ");
scanf("%d",&n);
s=fun(n);
if(s==1){
printf("%d是素数",n);
}
else{
printf("%d不是素数",n);
}
}
字符串带空格的输入与输出
#include <stdio.h>
#include <string.h>
void main()
{
char a[10];
printf("输入字符串名字(带空格):");
gets(a);
/***********FOUND***********/
printf("原样输出字符串:");
printf("%s",a);
}
计算分段函数的值
x*20 x<0且x≠-3
f(x)= sin(x) 0≤x<10且x≠2及x≠3
x*x+x-1 其它
#include <stdio.h>
#include <string.h>
#include <math.h>
/**********************
x*20 x<0且x≠-3
f(x)= sin(x) 0≤x<10且x≠2及x≠3
x*x+x-1 其它
**********************/
void main()
{
double x,f;
printf("input x=");
scanf("%lf",&x);
/**********FOUND**********/
if (x<0&&x!=-3.0)
f=x*20;
/**********FOUND**********/
else if(x>=0&& x<10.0 && x!=2.0 && x!=3.0)
f=sin(x);
else
f=x*x+x-1;
printf("x=%0.1f,f(x)=%f\n",x,f);
}
求1~100的和
功能:求1+2+3+…+100的和。
#include <stdio.h>
/*---------------------------------------------------------
功能:求1+2+3+...+100的和。
-------------------------------------------------------*/
#include <stdio.h>
int main()
{
int i=1,sum;
/***********SPACE***********/
sum=0;
/***********SPACE***********/
while (i<=100)
{
/***********SPACE***********/
sum=sum+i;
i++;
}
/***********SPACE***********/
printf("和等于:%d\n",sum);
return 0;
}
数组逆序存放
功能:数组逆序
#include <stdio.h>
/*---------------------------------------------------------
功能:数组逆序
-------------------------------------------------------*/
#include <stdio.h>
#define N 7
void main () {
int a[N]= {12,9,16,5,7,2,1},k,s;
printf("\n the origanal array:\n");
for (k=0; k<N; k++)
printf("%4d",a[k]);
/***********SPACE***********/
for (k=0; k<N/2; k++) {
s=a[k];
/***********SPACE***********/
a[k]=a[N-k-1];
/***********SPACE***********/
a[N-k-1]=s;
}
printf("\n the changed array:\n");
for (k=0; k<N; k++)
printf("%4d",a[k]);
}
求二维数组中的最大元素
功能:求出二维数组中的最大元素值。
/*-------------------------------------------------------
功能:求出二维数组中的最大元素值。
-------------------------------------------------------*/
#include <stdio.h>
int max_value(int array[][4])
{
int i,j,max;
/***********SPACE***********/
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<array[i][j])
/***********SPACE***********/
max=array[i][j];
return(max);
}
void main()
{
int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
/***********SPACE***********/
printf("max value is %d\n",max_value(a));
}
求最大公约数
功能:求最大公约数。
/*-------------------------------------------------------
功能:求最大公约数。
*/
/*
枚举法
*/
#include<stdio.h>
int main()
{
int m, n, temp, i;
printf("请输入两个数:");
scanf("%d%d", &m, &n);
if(m<n) //比较大小,使得m中存储大数,n中存储小数
{//交换m和n的值
temp=m;
m=n;
n=temp;
}
for(i=n; i>0; i--) //按照从大到小的顺序寻找满足条件的自然数
if(m%i==0 && n%i==0)//输出满足条件的自然数并结束循环
{
printf("%d 和 %d 的最大公约数为: %d\n", m, n, i);
break;
}
return 0;
}
/*
辗转相除法
*/
#include<stdio.h>
int main()
{
int a, b;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
while (a && b)
{
if (a > b)
a = a % b;
else
b = b % a;
}
printf("最大公约数为%d", a>b?a:b);
return 0;
}
输出100到1
#include <stdio.h>
int main(){
int a;
printf("输出1到100\n");
a=1;
while(a<101){
printf("%3d ",a);//数字宽度为3
a++;
}
return 0;
}
输出所有水仙花数
功能:输出所有的“水仙花数”。所谓水仙花数是一个三位数,其各位数字的
立方和等于该数本身。
例如:153=1^3 + 5^3 + 3^3,所以153是一个水仙花数。
/*-------------------------------------------------------
功能:输出所有的“水仙花数”。所谓水仙花数是一个三位数,其各位数字的
立方和等于该数本身。
例如:153=1^3 + 5^3 + 3^3,所以153是一个水仙花数。
-------------------------------------------------------*/
#include <stdio.h>
int main( ){
int x,a,b,c;
for(x=100;x<999;x++)
{
a=x%1000/100;
b=x%100/10;
c=x%10/1;
if(x==a*a*a+b*b*b+c*c*c)
printf("%d ",x);
}
return 0;
}
自定义函数找最大值
功能:输入两个实数,求较大者。要求用自定义函数max()找到大数。
/*-------------------------------------------------------
功能:输入两个实数,求较大者。要求用自定义函数max()找到大数。
-------------------------------------------------------*/
#include <stdio.h>
float max(float x,float y){
float z;
if(x>y) z=x;
else z=y;
return (z);
}
int main( ){
float big;
float num1,num2;
printf("请输入两个数字,比较大小\n");
printf("第一个数字:\n");
scanf("%f",&num1);
printf("第二个数字:\n");
scanf("%f",&num2);
big = max(num1,num2);
printf("最大值为%.3f",big);//小数点保留三位
}
交换ab的值
功能:输入整数a和b,交换a和b后输出。
/*-------------------------------------------------------
功能:输入整数a和b,交换a和b后输出。
-------------------------------------------------------*/
#include <stdio.h>
void main()
{
int a,b,temp;
printf("输入整数a,b:");
scanf("%d%d",&a,&b);
temp=a;
a=b;
b=temp;
printf("a=%d b=%d\n",a,b);
}
通过递归函数计算阶乘
功能:通过函数的递归调用计算阶乘。
/*-------------------------------------------------------
功能:通过函数的递归调用计算阶乘。
-------------------------------------------------------*/
#include <stdio.h>
long power(int n)
{
long f;
if(n==1|| n==0)
f = 1;
else
f = n * power(n-1);
return(f);
}
int main()
{
int n;
long y;
printf("input a inteager number:\n");
scanf("%d",&n);
y=power(n);
printf("%d的阶乘为%ld\n",n,y);
}
计算矩阵对角线之和
功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输
出主对角线上的元素之和sum。
/*-------------------------------------------------------
功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输
出主对角线上的元素之和sum。
-------------------------------------------------------*/
/*#include <stdio.h>
int main() {
// int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int a[3][3]= {0};
char i,j;
int sum=0;
for(i=0; i<3; i++){
for(j=0; j<3; j++)
scanf("%d",&a[i][j]);
}
for(i=0; i<3; i++)
sum=sum+a[i][i];
printf("输出的结果为:\n");
printf("sum=%d\n",sum);
return 0;
}
解决奥数计算题
解决奥数难题。
请在两个□内填入相同的数字使得等式成立:□3×6528=3□×8256。
/*-------------------------------------------------------
解决奥数难题。
请在两个□内填入相同的数字使得等式成立:□3×6528=3□×8256。
-------------------------------------------------------*/
#include <stdio.h>
int main() {
int i;
/***********SPACE***********/
for(i=1; i<=9; i++) {
/***********SPACE***********/
if((3*10+i)*8256==(i*10+3)*6528)
printf("应填入的数字为:%d",i);
}
return 0;
}
输出递减图形
尝试用while循环打印下面的图形。
*
**
***
****
*****
/*-------------------------------------------------------
尝试用while循环打印下面的图形。
*
**
***
****
*****
-------------------------------------------------------*/
#include <stdio.h>
int main() {
int i=1,j;
while(i<=5) {
for(j=0; j<i; j++)
printf("*",i);
printf("\n");
i++;
}
}
计算小数的和
让计算机把下面这个式子算出来吧!
1.2+2.3+3.4+4.5
/************************************************
让计算机把下面这个式子算出来吧!
1.2+2.3+3.4+4.5
------------------------------------------------*/
/**********Program**********/
#include<stdio.h>
int main(){
float a,b,c,d,e;
a=1.2;
b=2.3;
c=3.4;
d=4.5;
e=a+b+c+d;
printf("%0.2f=%0.2f+%0.2f+%0.2f+%0.2f",e,a,b,c,d);
return 0;
}
/********** End **********/
判断大小写字母并转换
输入一个字符,判断它是否是大写字母。
如果是,将它转换成小写字母;
如果不是,不转换。然后输出最后得到的字符。
/************************************************
输入一个字符,判断它是否是大写字母。
如果是,将它转换成小写字母;
如果不是,不转换。然后输出最后得到的字符。
------------------------------------------------*/
/**********Program**********/
#include<stdio.h>
int main() {
char ch;
scanf("%c",&ch);
if(ch >= 'A'&&ch <= 'Z'){
ch=ch+32;
printf("大写字母,小写为%c",ch);
}
else {
printf("小写字母,小写为%c",ch);
}
return 0;
}
/********** End **********/
拼接字符串
例程一
编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即
把p2所指的字符串连接到p1所指的字符串的后面。
例如:分别输入下面两个字符串:“China” “Town”
程序输出:ChinaTown
/*
例程一
编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即
把p2所指的字符串连接到p1所指的字符串的后面。
例如:分别输入下面两个字符串:"China" "Town"
程序输出:ChinaTown
*/
#include <stdio.h>
void main()
{
char s1[100],s2[100];
int i,j;//定义变量
printf("请输入两个字符串:\n");
gets(s1);
gets(s2);
i=0;
while(s1[i]) i++;//通过while循环,遍历s1的内容
j=0;
while(s2[j])
{
s1[i++]=s2[j++];//连接
}
s1[i]='\0';//遇到'\0'结束,输出
puts(s1);
}
/*
例程二
编写函数Fun拼接字符串
*/
#include <stdio.h>
void fun(char p1[],char p2[]) {
int i,j;
for(i=0; p1[i]!='\0'; i++);
for(j=0; p2[j]!='\0'; j++)
p1[i++]=p2[j];
p1[i]='\0';
puts(p1);
}
void main() {
char a[100],b[100];
gets(a);
gets(b);
fun(a,b);
}
计算圆锥体积
列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误
/*
列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误
*/
#include <stdio.h>
void main() {
float r=10,h=5,v;
v=1.0/3*3.14159*r*r*h;
printf("v=%0.3f\n",v);
}
逆置数组中的元素
下列给定程序中,函数fun的功能是:逆置数组元素中的值。
例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则逆置后依
次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。
/*
下列给定程序中,函数fun的功能是:逆置数组元素中的值。
例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则逆置后依
次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。
*/
#include <stdio.h>
void fun(int a[], int n){
int i,t;
for (i=0; i<n/2; i++)
{
t = a[i];
a[i] = a[n-i-1];
a[n-i-1] = t;
}
}
void main() {
int shuzu[]={1,2,3,4,5,6,7,8,9};
fun(shuzu,9);
int c = 0;
printf("逆置后的数组为:");
for(c = 0;c < 9; c++){
printf("%d",shuzu[c]);
}
}
拆分十六进制数字
0x12345678拆分成0x12.0x34......
/*
0x12345678拆分成0x12.0x34......
*/
#include <stdio.h>
int main(){
int a=0x12345678,b[4]={0};
b[0]=(a>>6*4)&0xff;
b[1]=(a>>4*4)&0xff;
b[2]=(a>>2*4)&0xff;
b[3]=(a>>0*4)&0xff;
printf("%x\n",a);
printf("拆分后:\n");
printf("0x%x\n",b[0]);
printf("0x%x\n",b[1]);
printf("0x%x\n",b[2]);
printf("0x%x\n",b[3]);
return 0;
}