还有两道题没做出来,后面再加上
文章目录
- **1.输入3个数判断是否能构成三角形;若可以请计算面积**
- **2.求圆的面积、周长**
- **3.求立方体的体积**
- **4.华氏温度与摄氏温度相互转换**
- **5.水仙花数**
- **6.打印各种三角形**
- **7.用*打印菱形**
- **8.输入一级数据,逆序存放**
- **9.输入字符串,逆序输出**
- **10.判断是否为回文**
- **11.判断是否是闰年**
- **12.输出某一范围的所有闰年**
- **13.判断奇偶性**
- **14.计算BMI**
- **15.计算阶乘**
- **16.打印乘法口诀表**
- **17.从1加到100**
- **18.1+1/2+1/3+.....1/100**
- **19.1-1/2+1/3-1/4+....1/100**
- **20.计算2+22+222+2222+22222**
- **21.打印Fibonacci数列**
- **22.分段函数**
- **23. 2/1 3/2 5/3…前20项的和**
- **24.求一组数据中的最大值、最小值、平均值**
- **25.密码**
- **【未做】26.二维数组,最大值,最小值,平均值,对角线元素的和**
- **【未做】27.统计各种字符的个数**
- **28.统计正数,负数和0的个数**
- **29.输入四个数,输出的时候用空格隔开**
- **30.英文字母大小写转换**
- **31.长方形的周长面积**
- **32.输出100以内所有能被5整除的数**
- **33.输入一个整数,若为正数求平方根**
- **34.求一定范围内所有偶数的和**
- **<存疑>35.二维数组行列交换**
- **36.逆序输出**
- **37.for循环嵌套打印输出字母**
1.输入3个数判断是否能构成三角形;若可以请计算面积
#include <stdio.h>
float area(float x,float y,float z);
int main(){
float a,b,c;
printf("请输入三个数(以空格分隔):");
scanf("%f %f %f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a){
printf("%.1f %.1f %.1f三边可以构成三角形。",a,b,c);
printf("\n面积为%.2f",area(a,b,c));}
else
printf("%.1f %.1f %.1f三边不可以构成三角形!");
}
float area(float x,float y,float z){
float p,s;
/**使用海伦公式计算面积**/
p=(x+y+z)/2;
s=p*(p-x)*(p-y)*(p-z);
return s;
}
2.求圆的面积、周长
#include <stdio.h>
#define Pi 3.14
float area(float a);
float cirum(float a);
int main(){
float r;
printf("请输入圆的半径(单位:m):");
scanf("%f",&r);
printf("\n这个圆的面积为:%.2fm^2",area(r));
printf("\n这个圆的半径为:%.2fm",cirum(r));
return 0;
}
float area(float a){
float s;
s=Pi*a*a;
return s;
}
float cirum(float a){
float c;
c=2*Pi*a;
return c;
}
3.求立方体的体积
#include <stdio.h>
float v(float a,float b,float c);
int main(){
float L,W,H;
printf("请输入立方体的长、宽、高(中间用空格隔开):");
scanf("%f %f %f",&L,&W,&H);
if(L= =0||W= =0||H==0)
printf("输入值为非法数值,请重新输入!");
else
printf("这个立方体的体积为%.2fm^3",v(L,W,H));
return 0;
}
float v(float a,float b,float c){
float v=a*b*c;
return v;
}
4.华氏温度与摄氏温度相互转换
#include <stdio.h>
float Dc(float a);
float Fd(float b);
int main(){
int selec = 1;
float temp;
printf("1:华氏度->摄氏度");
printf("\n2:摄氏度->华氏度");
printf("\n请选择模式(1 or 2):");
scanf("%d",&selec);
printf("\n请输入温度:");
scanf("%f",&temp);
if(selec==1)//华氏度->摄氏度
printf("%.2f转换为摄氏度为%.2f",temp,Dc(temp));
else
printf("%.2f转换为华氏度为%.2f",temp,Fd(temp));
return 0;
}
float Dc(float a){
float C;
C=(a-32)/1.8;
return C;
}
float Fd(float b){
float F;
F=b*1.8+32;
return F;
}
5.水仙花数
#include <stdio.h>
int Prod(int num);
int main(){
int num;
printf("请输入一个三位数:");
scanf("%d",&num );
if(num>999||num<100)
printf("输入不合法!请输入100~999之间的数!");
else
if(num==Prod(num))
printf("%d是水仙花数。",num );
else
printf("%d不是水仙花数!",num);
return 0;
}
int Prod(int num){
int a,b,c,after_num;
a=num/100;
b=num/10%10;
c=num%10;
after_num=a*a*a+b*b*b+c*c*c;
return after_num;
}
6.打印各种三角形
直角三角形
#include <stdio.h>
int main(void){
int i,j;
for(i=0;i<6;i++){
for(j=6;j>i;j--){//空格逐行-1,*逐行加1
printf("");}
for(j=0;j<=i;j++){
printf("*");
}
printf("\n");
}
}
等腰三角形
#include <stdio.h>
int main(void){
int i,j;
for(i=0;i<6;i++){
for(j=6;j>i;j--){
printf(" ");
}
for(j=0;j<2*i+1;j++){
printf("*");
}
printf("\n");
}
}
倒立等腰三角形
#include <stdio.h>
int main(void){
int i,j;
for(i=0;i<6;i++){
for(j=0;j<i;j++){
printf(" ");
}
for(j=0;j<=11-2*i;j++){
printf("*");
}
printf("\n");
}
}
7.用*打印菱形
int i,j,k;
for(i=1;i<=5;i++){
for(j=6;j>i;j--){
printf(" ");
}
for(k=1;k<=2*i-1;k++){
printf("*");
}
printf("\n");
}
for(i=1;i<=6;i++){
for(j=1;j<=i-1;j++){
printf(" ");
}
for(k=1;k<=13-2*i;k++){
printf("*");
}
printf("\n");
}
8.输入一级数据,逆序存放
/*输入一级数据,逆序存放*/
#include <stdio.h>
int main(void){
int a[5],i;
printf("请输入一串数据:");
for(i=4;i>=0;i--)
scanf("%d",&a[i]);
printf("逆序存放顺序为:");
for(i=0;i<5;i++)
printf("%d",a[i]);
return 0;
}
9.输入字符串,逆序输出
#include <stdio.h>
#define N 4
int main(){
char a[N];
int i;
printf("请输入一串字符串:");
for(i=0;i<N;i++)
scanf("%c",&a[i]);
printf("\n原字符串为:");
for(i=0;i<N;i++)
printf("%c",a[i]);
printf("\n逆序输出结果为:");
for(i=N-1;i>=0;i--)
printf("%c",a[i]);
printf(" ");
}
10.判断是否为回文
#include <stdio.h>
#include <string.h>
int main(){
char a[10];
int i,j,len,result;
printf("这是一个判断输入是否为回文的小程序");
printf("\n请输入一段文字:");
gets(a);
len=strlen(a);
if(len%2==0){//长度为偶数时
for(i=0;i<=(len/2-1);i++){
for(j=len-1;j>=len/2;j--){
if(a[i]==a[j])
result+=1;
else
result+=0;}
}
}
else{//长度为奇数时
for(i=0;i<=len/2;i++){
for(j=len-1;j>=len/2;j--){
if(a[i]==a[j])
result+=1;
else
result+=0;}
}
}
if(len%2= =0){
if(result%(len/2)==0)
printf("\n%s是回文!",a);
else
printf("\n%s不是回文!",a);}
else {
if(result%(len/2+1)==0)
printf("\n%s是回文!",a);
else
printf("\n%s不是回文!",a);}
}
11.判断是否是闰年
#include <stdio.h>
void judge(int year);
int main(void){
int year;
printf("这是一个闰年的小程序");
printf("请输入:");
scanf("%d",&year);
judge(year);
return 0;
}
void judge(int year){
if(year<=0)
printf("输入不合法!请重新输入!");
else if((year%4= =0&&year%100!=0)||(year%400==0))
printf("%d是闰年。",year);
else
printf("%d不是闰年!",year);
}
12.输出某一范围的所有闰年
#include <stdio.h>
void print(int x,int y);
int main(){
int i,a,year;
printf("请输入范围(中间用空格隔开):");
scanf("%d %d",&a,&year);
print(a,year);
return 0;
}
void print(int x,int y){
int i;
printf("\n%d~%d之间闰年有:\n",x,y);
if(x<0||y<0||(x<0&&y<0))
printf("输入有误!请重新输入!");
else{
if(x<y){//前一个输入值小于后一个时
for(i=x;i<y;i=i+4){//闰年每四年一次
if(((i%4= =0)&&(i%100!=100))||(i%400== 0))
printf("%d年",i);
printf(" ");}
}
else if(x>y){//前一个输入值大于后一个时
for(i=x;i>y;i=i-4){
if(((i%4= =0)&&(i%100!=100))||(i%400==0))
printf("%d年",i);
printf(" ");}
}
}
}
13.判断奇偶性
#include <stdio.h>
int main(){
int num;
printf("这是一个判断输入数值奇偶性的小程序");
printf("\n\n请输入:");
scanf("%d",&num );
judge(num);
}
void judge(int a){
if(a%2==0)
printf("\n%d是偶数。",a );
else//奇数情况下
printf("\n%d是奇数。",a);
}
14.计算BMI
/**BMI=体重/身高^2**/
#include <stdio.h>
float BMI_Cout(float a,float b);
int main(){
float hight,wight;
printf("请输入您的身高(m)和体重(kg)(中间请用空格隔开):");
scanf("%f %f",&hight,&wight);
printf("您的BMI值为:%.2f",BMI_Cout(wight,hight));
}
float BMI_Cout(float a,float b){
float BMI;
BMI=a/(b*b);
return BMI;
}
15.计算阶乘
#include <stdio.h>
double factotial(int a);
int main(void){
int num;
printf("这是一个计算阶乘的程序");
printf("\n请输入:");
scanf("%d",&num );
printf("\n%d的阶乘是%.2lf",num,factotial(num));
return 0;
}
double factotial(int a){
int i;
double product=1;
for(i=1;i<=a;i++)
product*=i;
return product;
}
16.打印乘法口诀表
#include <stdio.h>
void multip(void);
int main(void){
printf("这是一个打印乘法口诀表的小程序");
multip();
}
void multip(void){
int i,j;
printf("\n");
for(i=1;i<10;i++){
for(j=1;j<10;j++){
printf("%d*%d=%d\t",i,j,i*j);
if(j==9)
printf("\n");
}
}
}
17.从1加到100
#include <stdio.h>
int sum(void);
int main(){
printf("和为%d",sum());
}
int sum(void ){
int i,s=0;
for(i=1;i<101;i++)
s+=i;
return s;
}
18.1+1/2+1/3+…1/100
#include <stdio.h>
int main(){
int i;
float sum = 0.0;
for(i=1;i<=100;i++)
sum+=(float)1/i;
printf("和为%f",sum);
}
19.1-1/2+1/3-1/4+…1/100
#include <stdio.h>
float Cout(void);
int main(){
printf("和为:%f",Cout());
}
float Cout(void ){
int i;
float sum=0;
for(i=1;i<=100;i++){
/**偶数减 奇数加*/
if(i%2==0)
sum-=1.0/i;
else
sum+=1.0/i;}
return sum;
}
20.计算2+22+222+2222+22222
#include <stdio.h>
int cout(int n);
int main(){
int num;
printf("请输入要计算的数字(例如2):");
scanf("%d",&num);
printf("和为:%d",cout(num));
}
int cout(int n){
int sum=0,i;
for(i=1;i<=5;i++){
sum+=n;
n=n*10+2;}
return sum;
}
21.打印Fibonacci数列
#include <stdio.h>
void Fibon(int n);
int main(){
int num;
printf("这是一个打印Fibonacci数列的程序");
printf("请输入要打印多少个:");
scanf("%d",&num );
Fibon(num);
}
void Fibon(int n){
int F[n],i;
/**将Fibonacci数列第一第二个数初始化1*/
F[0]=1;
F[1]=1;
/**打印从第三个数开始的Fibonacci数列*/
for(i=2;i<n;i++){
F[i]=F[i-1]+F[i-2];
}
/**将F[]数列中的所有元素全部打印出来*/
printf("%d个Fibonacci数:\n",n);
for(i=0;i<n;i++)
printf(" %d ",F[i]);
if(i!=0&&i%10==0)
printf("\n");
}
22.分段函数
#include <stdio.h>
int Sction_fun(int x);
int main(){
int num;
printf("这是一个分段函数题");
printf("请输入:");
scanf("%d",&num);
printf("结果为:%d",Sction_fun(num));
return 0;
}
int Sction_fun(int x){
int y;
if(x<1)
y=x;
else if(x>=1&&x<10)
y=2*x-1;
else
y=3*x-11;
return y;
}
23. 2/1 3/2 5/3…前20项的和
#include <stdio.h>
float sum(int n);
int main(){
int num;
printf("这是一个打印特定数和的小程序:");
printf("\n\n请输入:");
scanf("%d",&num);
printf("\n打印的%d个数和为:%.2f",num,sum(num));
}
float sum(int n){
float numer=2,a=1,i;
float s=0;
for(i=1;i<n;i++)
s+=numer/a;
a=numer;
numer+=i;
return s;
}
24.求一组数据中的最大值、最小值、平均值
#include <stdio.h>
int Max(int*p);
int Min(int*p);
float Averg(int*p);
int main(){
int str[10],*ptr ,i;
printf("请输入10个数据:");
for(i=0;i<10;i++)
scanf("%d",&str[i]);
ptr=str;//指针指向数组str的首地址
printf("最大值是%d",Max(ptr));
printf("\n最小值是%d",Min(ptr));
printf("\n平均值是%.2f",Averg(ptr));
return 0;
}
/*最大值*/
int Max(int *p){
int i,j,max=p[0];
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(p[i]>max)
max=p[i];}
}
return max;
}
/*最小值*/
int Min(int *p){
int i,j,min=p[0];
for(i=0;i<10;i++){
for(j=0;j<10;i++){
if(p[i]<min)
min=p[i];}
}
return min;
}
/*平均值*/
float Averg(int *p){
float aver=0.0;
int sum=0;
int i;
for(i=0;i<10;i++)
sum+=p[i];
aver=(float)sum/(i+1);
return aver;
}
25.密码
#include <stdio.h>
#include <string.h>
int Login(void);
void main(){
int Count=1;
printf("\n\t\t\t\t --------------------*登录界面*--------------------");
while(Count<=3){
if(Login()==1)
exit(1);
else
Count+=1;}
return 0;
}
int Login(void){
char pass[10],def_pass[10]="1234";
int a;
printf("\n\n\t\t\t\t\t请输入密码:");
scanf("%s",pass);
if(strcmp(pass,def_pass)==0){
printf("\n\t\t\t\t\t\t 、登录成功");
a= 1;}
else{
printf(0\n"\t\t\t\t\t\t 密码错误!");
a= 2;}
return a;
}
【未做】26.二维数组,最大值,最小值,平均值,对角线元素的和
【未做】27.统计各种字符的个数
28.统计正数,负数和0的个数
#include <stdio.h>
void Num_Cout(int *p);
int main(void){
int a[10],i,*ptr=NULL ;
printf("请输入一串数值(包含正数、负数、0):");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
ptr=a;
Num_Cout(ptr);
}
void Num_Cout(int *p){
int i,cout_0=0,cout_z=0,cout_f=0;
for(i=0;i<10;i++){
if(p[i]==0)
cout_0+=1;
else if(p[i]>0)//正数
cout_z+=1;
else if(p[i]<0)//负数时
cout_f+=1;
}
printf("这串数值中\n正数有:%d个\n负数有:%d个\n0有:%d个",cout_z,cout_f,cout_0);
}
29.输入四个数,输出的时候用空格隔开
#include <stdio.h>
void Proc(int *p);
int main(){
int num[4],*ptr,i;
printf("请输入4个数:");
for(i=0;i<4;i++)
scanf("%d",&num[i]);
ptr=num ;
Proc(ptr);
}
void Proc(int *p){
int i;
for(i=0;i<4;i++){
printf("%d",p[i]);
printf(" ");
}
}
30.英文字母大小写转换
#include <stdio.h>
char Switch_Char(char ch);
int main(){
char ch;
printf("请输入要转换的字母:");
scanf("%c",&ch);
Switch_Char(ch);
}
/**转换函数*/
char Switch_Char(char ch){
if(ch<='Z'&&ch>='A'){/*判断为大写字符*/
ch+=32;
printf("\n转换为小写字母为%c",ch);}
else if(ch>='a'&&ch<='z'){/*判断为小写字母*/
ch-=32;
printf("\n转换为大写字母为%c",ch);}
else
printf("输入错误!请输入字母!");
}
31.长方形的周长面积
#include <stdio.h>
float oblong(float a,float b);
int main(void){
float len,wight;
printf("请输入长方形的长和宽(中间用空格隔开):");
scanf("%f %f",&len,&wight);
printf("长方形的面积是%.2fm^2",oblong(len,wight));
}
float oblong(float a,float b){
return a*b;
}
32.输出100以内所有能被5整除的数
#include <stdio.h>
int Input_Division();
int main(){
printf("100以内能被5整除的数有:\n");
Input_Division();
}
int Input_Division(){
int i,cout=1;
for(i=0;i<=100;i++){
if(i%5= =0){
printf("%d",i);
printf(" ");
cout+=1;
if(cout%5==0)
printf("\n");}
}
}
33.输入一个整数,若为正数求平方根
#include <stdio.h>
float Sqrt_Func(int num);
int main(){
int a;
printf("请输入一个数:");
scanf("%d",&a);
if(a>0)
Sqrt_Func(a);
else
printf("\n输入错误!请输入正数!");
}
float Sqrt_Func(int num){
float result;
result = sqrt(num);
printf("%d的平方根为%.2f",num,result);
}
34.求一定范围内所有偶数的和
#include <stdio.h>
int even_num(int a,int b);
int main(void){
int prep,next;
printf("请输入范围(例如:2 10):");
scanf("%d %d",&prep,&next);
printf("%d到%d之间的偶数有:\n",prep,next);
even_num(prep,next);
}
int even_num(int a,int b){
int cout=1,i;
for(i=a;i<=b;i++){
if(i%2= =0){
printf("%d",i);
printf(" ");
cout++;}
if(cout%5==0)
printf("\n");
}
}
<存疑>35.二维数组行列交换
/**二维数组行列交换*/
#include <stdio.h>
void exchange(int str[3][4]);
int main(){
int *p,i,j;
int a[3][4]={{1,1,1,1},
{0,0,0,0},
{4,4,4,4},};
printf("数组原顺序为:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d",a[i][j]);
if(j%5= =0&&j!=0)
printf("\n");}
}
exchange(a);
}
void exchange(int str[3][4]){
int i,j,change;
for(i=0;i<3;i++){
for(j=0;j<4;i++){
change = str[i][j];
str[i][j]=str[j][i];
str[j][i]=change;}
}
printf("行列交换后为:");
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%d",str[i][j]);
if(j%5==0)
printf("\n");
}
}
36.逆序输出
#include <stdio.h>
#define N 8
int main(){
char a[N];
int i;
printf("请输入:");
for(i=0;i<N;i++)
scanf("%c",&a[i]);
/**逆序输出*/
for(i=N-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}
37.for循环嵌套打印输出字母
方法一:
#include <stdio.h>
int main(void){
int i,j;
char a='A';
for(i=0;i<6;i++){
for(j=6;j>i;j--){//空格逐行-1
printf("");}
for(j=0;j<=i;j++){
printf("%c",a++);
}
printf("\n");
}
}
方法二:
#include <stdio.h>
int main(){
char i,j;
char a='A';
for(i='A';i<'G';i++)
{
for(j='A';j<=i;j++)
{
printf("%c",a++);
if(j==i)
a=a;
//'a'==a+1;
}
printf("\n");
}
return 0;
}