c作业整合(分支、循环、数组、函数)

分支机构作业

1.输入你的身高和体重,测试你的健康状况。 计算bmi的值, bmi = (体重/身高的平方) 如果bmi 小于18.5,则显示"偏瘦,注意加强营养" 如果bmi 在18.5和23.9之间,则显示"体 重指数良好,注意保持" 如果bmi值大于23.9 ,则显示"你有点偏胖,注意锻炼

cs 复制代码
#include <stdio.h>
int main()
{
double a,b,bim;
printf("请输入你的体重(kg)和身高(m):\n");
scanf("%lf,%lf",&a,&b);
bim=a/(b*b);
if(bim<18.5)
{
printf("偏瘦,注意加强营养\n");
}
else if(bim>=18.5&&bim<=23.9)
{
printf("体重值数良好,注意保持\n");
}
else if(bim>23.9)
{
printf("你有点胖,可以减肥了\n");
}
return 0;

2.西安市对安装"一户一表"的居民用户按阶梯式累进电价进行计收电费,具体方案是, 月用 电量低于50千瓦时部分,电价不调整,仍为0.538元/千瓦时;51~200千瓦时部分, 单价为 0.568元/千瓦时;超过200千瓦时部分,电价为0.638元/千瓦时。市区徐某家4月份 的用电 量为96千瓦时,其电费计算如下:基本电费部分:96千瓦时×0.538元/千瓦时=51.65元; 超 出50千瓦时的调价电费:(96~50)千瓦时×0.03元/千瓦时=1.38元;电费合计 51.65+1.38=53.03元 。 "阶梯式电价"机制可有效地抑制电力浪费现象,引导居民节约用 电,合理用电,比纯粹"口号倡 导型" 节约用电更加有效。 编写一个程序根据输入的用电 量,计算电费

cs 复制代码
#include <stdio.h>
int main()
{
double a,b,c,d;
printf("请输入你的用电量(kw/h):\n");
scanf("%lf",&a);
if(a<=50&&a>=0)
{
b=a*0.538;
printf("你的电费为(元):%.2f\n",b);
}
else if(a>50&&a<=200)
{
c=a*0.538+(a-50)*0.03;
printf("你的电费为(元):%.2f\n",c);
}
else if(a>200)
{
d=a*0.538+(150*0.03)+(a-200)*0.1;
printf("你的电费为(元):%.2f\n",d);
}
else
{
printf("请重新输入真全的用电量!\n");
}
return 0;
}

3.设计一个计算个人所得税的软件 应纳税所得额 = 工资收入金额 - 各项社会保险费 - 起 征点(3500元) 应纳税额 = 应纳税所得额 x 税率 - 速算扣除数 通过输入工资总额和社保费 用计算应纳税额

cs 复制代码
#include <stdio.h>
int main()
{
double gz,sb,tmp,res;
printf("请输入工资总额和社保费用:");
scanf("%lf,%lf",&gz,&sb);
tmp=gz-sb-3500;
if(gz<3500)
{
printf("低于起征点\n");
}
else if(gz>5000)
{
res=tmp*0.2-500;
printf("交了%.2lf的应纳税额.\n",res);
}
return 0;
}

4.设计TVM(地铁自动售票机)机软件。 1 2 输入站数,计算费用,计费规则,6站2元,7- 10站3元,11站以上为4元。 输入钱数,计算找零(找零时优先找回面额大的钞票),找零方 式为各种面额张数,可识别面额: 100,50,20,10,5,1

cs 复制代码
#include <stdio.h>
int main()
{
int z=0;
int m=0;
int a=0,b=0,c=0,d=0,e=0,f=0;
printf("请输入站数和支付金额\n");
scanf("%d,%d",&z,&m);
if(z>0&&z<=6)
{
m-=2;
}
else if(z>=7&&z<=10)
{
m-=3;
}
else if(z>=11)
{
m-=4;
}
int total_m=m;
a=m/100;m-=a*100;
b=m/50;m-=b*50;
c=m/20;m-=c*20;
d=m/10;m-=d*10;
e=m/5;m-=e*5;
f=m/1;m-=f*1;
printf("找回的总金额是:%d\n分别是%d张100元\n%d张50元\n%d张20元\n%d张10元\n%d张5元\n%d张1
元\n",total_m,a,b,c,d,e,f);
return 0;
}

5.出租车费计算程序,起步公里数3公里,车费8元,超出3公里,每公里1.8元,不足一公 里,按照1公 里计算。 如果输入一个钱数,计算最多能做多少公里,该如何实现?

cs 复制代码
#include <stdio.h>
int main()
{
float a,b,c;
printf("请输入你消费金额\n");
scanf("%f",&b);
if(b==8)
{
printf("你走了3km以内\n");
}
else if(b>8)
{
c=(int)(3+(b-8)/1.8);
printf("你走了%.2fkm\n",c);
}
else
{
printf("非法操作!\n");
}
return 0;
}

6.通过键入输入一个年份和月份,输出显示该月有多少天。(考虑润年情况)

cs 复制代码
#include <stdio.h>
int main() {
int year, month;
int days;
printf("请输入年份和月份(例如:2023 3):");
scanf("%d %d", &year, &month);
days = 0;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10
|| month == 12) {
days = 31;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days = 29;
} else {
days = 28;
}
}
printf("年份:%d, 月份:%d 的天数为:%d\n", year, month, days);
return 0;
}

7.实现一个简单的计算器,要求根据输入的运算符实现相应的运算。

cs 复制代码
#include <stdio.h>
int main()
{
printf("简易计算器 v1.0\n");
printf("请输入两个操作数:\n");
double x,y;// 存放计算数
char ch;// 运算符
scanf("%lf,%lf",&x,&y);
scanf("%c",&ch);// 消除上面产生的最后一个回车符
printf("请输入运算符:(+、-、.*、/)\n");
scanf("%c",&ch);
// 计算
switch(ch)
{
case '+':
printf("%.2lf+%.2lf=%.2lf\n",x,y,x+y);
break;
case '-':
printf("%.2lf-%.2lf=%.2lf\n",x,y,x-y);
break;
case '.':
case '*':
printf("%.2lf*%.2lf=%.2lf\n",x,y,x*y);
break;
case '/':
if(y == 0)
{
printf("除数不能为0\n");
}
else
{
printf("%.2lf/%.2lf=%.2lf\n",x,y,x/y);
}
break;
default:
printf("输入错误!\n");
}
return 0;

循环结构作业

1. 计算n以内所有正奇数的和 ? n值通过键盘输入

cs 复制代码
#include <stdio.h>
#include <math.h>
int main()
{
int a=1;
int b=0;
printf("请输入一个数字:\n");
scanf("%d",&a);
for(int i=1;i<=fabs(a);i++)
{
if(i%2!=0)
{
b+=i;
}
}
printf("1-n的正奇数和为:%d\n",b);
return 0;
}

2. 计算 1 + 1/(2 * 3) + 1/(3 * 4) + .+ 1/(n * (n + 1)) = ?直到最后一相值小于 0.00001为至。

cs 复制代码
#include <stdio.h>
int main()
{
double n=1;
double a=1;
for(int i=2;a>1e-5;i++)
{
a=1.0/(i*(i+1));
n+=a;
}
printf("n为%lf\n",n);
return 0;
}

3. 计算1+1/2 - 1/3 + 1/4 - 1/5 .+1/n= ? n通过键盘输入

cs 复制代码
#include <stdio.h>
int main() {
double a = 1;
int c;
printf("请输入一个数字:\n");
scanf("%d", &c);
for (int i = 2; i <= c; i++) {
if (i % 2 == 0) {
a += 1.0 / i;
} else {
a += -(1.0 / i);
}
}
printf("1-n的序列和为%.2f", a);
return 0;
}

4. 计算n的阶乘 ? n! = 123 .*n n值通过键盘输入

cs 复制代码
#include<stdio.h>
int main() {
int n;
int a = 1;
printf("请输入一个n值:\n");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
a *= i;
}
printf("1-n的阶乘为:%d\n", a);
return 0;
}

5. . 输出半径为1~10的圆面积,面积大于100时停止

cs 复制代码
#include<stdio.h>
#define pi 3.1415926
int main()
{
double s;
for(int i=1;i<=10;i++)
{
s=pi*i*i;
if(s<100)
{
printf("%.3f\n",s);
}
}
return 0;
}

6. 求输入的十个整数中正数的个数及其平均值

cs 复制代码
#include <stdio.h>
int main()
{
int sum;
double o;
int p=0;
int k=0;
printf("请输入10个数字:\n");
for(int i=1;i<=10;i++)
{
scanf("%d",&sum);
if(sum>0)
{
p+=sum;
k++;
}
}
printf("正整数的个数为:%d\n",k);
o=1.0*p/10;
printf("这10个数的平均值为:%.3f\n",o);
return 0;
}

7. 打印出100以内能整除7之外的的自然数

cs 复制代码
#include <stdio.h>
int main()
{
int p=1;
for(int i=0;i<=100;i++)
if(i%7==0)
{
p=i;
}
else
{
printf("%4d",i);
}
return 0;
}

8. 打印乘法表

cs 复制代码
#include <stdio.h>
int main()
{
for(int y=1;y<=9;y++)
{
for(int k=1;k<=y;k++)
{
printf("%d*%d=%d\t",y,k,y*k);
}
printf("\n");
}
printf("\n");
return 0;
}

9. 我国古代数学家张丘建在《算经》一书中提出的数学问题: 鸡翁一值钱五,鸡母一值钱三,鸡雏三 值钱一。百钱买百 鸡,问鸡翁、鸡母、鸡雏各几何?

cs 复制代码
#include <stdio.h>
// 公鸡、母鸡和小鸡的数量
int cock, hen, chick;
// 枚举所有可能的情况
void search() {
for (cock = 0; cock <= 100; cock++) {
for (hen = 0; hen <= 100; hen++) {
chick = 100 - cock - hen;
// 满足条件:公鸡每只 5 文钱,母鸡每只 3 文钱,小鸡每三只 1 文钱
if (5 * cock + 3 * hen + 1 / 3 * chick == 100) {
printf("公鸡数量:%d,母鸡数量:%d,小鸡数量:%d\n", cock,
hen, chick);
}
}
}
}
int main() {
search();
return 0;
}
search();
return 0;
}

10. 从键盘上输入多个无符号整型数据,直到 0 结束 ,输出 所输入数据中的最大值。

cs 复制代码
#include <stdio.h>
int main() {
unsigned int number, max = 0;
printf("请输入无符号整型数据,输入0结束:\n");
while(1) {
scanf("%u", &number);
if(number == 0) {
break;
}
if(number > max) {
max = number;
}
}
if(max == 0) {
printf("没有输入任何数据。\n");
} else {
printf("输入的最大值是:%u\n", max);
}
return 0;
}

数组作业

1. 键盘录入一组数列,利用冒泡排序将数据由大到小排序

cs 复制代码
#include <stdio.h>
int main()
{
int y[5];
int k=0;
int length=sizeof(y)/sizeof(int);
printf("请输入5个数:\n");
for(int i=0;i<5;i++)
{
scanf("%d",&y[i]);
}
printf("\n");
for(int h=0;h<length-1;h++)
{
for(int r=0;r<length-h-1;r++)
{
if(y[r]>y[r+1])
{
k=y[r];
y[r]=y[r+1];
y[r+1]=k;
}
}
}
printf("\n");
printf("冒泡排序后遍历数组为:\n");
for(int i=0;i<length;i++)
{
printf("%d ",y[i]);
}
return 0;
}

2. 从键盘输入年、月、日,计算并输出该日是该年第几天

cs 复制代码
#include <stdio.h>
int main()
{
int n,y,r,yk;
printf("请输入年月日:\n");
scanf("%d,%d,%d",&n,&y,&r);
int k[]={31,0,31,30,31,30,31,31,30,31,30,31};
if((n%4==0&&n%100!=0)||n%400==0)
{
k[1]=29;
}
else
{
k[1]=28;
}
yk=r;
for(int h=0;h<y-1;h++)
{
yk=yk+k[h];
}
printf("%d月%d日是%d年的%d天",y,r,n,yk);
return 0;
}

3. 键盘录入一组数列,求最大数、最小数、均值

cs 复制代码
#include <stdio.h>
int main()
{
int y[5];
int k=0;
int sum=0;
double z=0;
int length=sizeof(y)/sizeof(int);
printf("请输入5个数:\n");
for(int i=0;i<5;i++)
{
scanf("%d",&y[i]);
}
printf("\n");
for(int h=0;h<length-1;h++)
{
for(int r=0;r<length-h-1;r++)
{
if(y[r]>y[r+1])
{
k=y[r];
y[r]=y[r+1];
y[r+1]=k;
}
}
}
printf("\n");
printf("最大的数为:%d\n",y[4]);
printf("最小的数为:%d\n",y[0]);
for(int i=0;i<length;i++)
{
sum=sum+y[i];
}
z=sum/5;
printf("平均数为:%.3f",z);
return 0;
}

4. 从键盘录入一组数列,判断是否是回文,举例:12321,abba,121

cs 复制代码
#include <stdio.h>
int main() {
int t, tmp = 0, res;
printf("请输入一个数列:");
scanf("%d", &t);
res = t;
while (t > 0) {
tmp = tmp * 10 + t % 10;
t /= 10;
}
if (res == tmp) {
printf("是回文数\n");
} else {
printf("不是回文数\n");
}
return 0;
}

5. 用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下 标值;

cs 复制代码
#include <stdio.h>
int main()
{
int y[10]{1,2,3,4,5,6,7,8,9,10};
printf("请输入1-10你要查看该数字在数组中的位置:\n");
int k=0;
int u=0;
int r=0;
scanf("%d",&k);
for(int i=1;i<=10;i++)
{
if(i==k)
{
u=k;
break;
}
}
r=u-1;
printf("你要查的数字在该数组中的位置为:%d\n",r);
return 0;
}

6. 通过键盘输入 10 个学员成绩

1)输出不及格学员的成绩和下标。
cs 复制代码
#include <stdio.h>
int main()
{
int y[10];
int k=0;
printf("请输入10个学生的成绩:\n");
for(int i=0;i<sizeof(y)/sizeof(int);i++)
{
scanf("%d",&y[i]);
}
for(int t=0;t<sizeof(y)/sizeof(int);t++)
{
k=y[t];
if(k<60)
{
printf("该成绩不合格:%d,在数组中的位置为%d\n",k,t);
}
}
return 0;
}
2)求最高分的下标值
cs 复制代码
#include <stdio.h>
int main()
{
int a[10];
int t=0;
int length=sizeof(a)/sizeof(int);
printf("请输入10数字:\n");
for(int i=0;i<length;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("\n");
for(int i=0;i<length;i++)
{
if(i<length)
{
printf("%d ",a[i]);
}
}
printf("最大数为:%d,下标为%d",a[length-1],length-1);
return 0;
}
3)求最低成绩的下标值
cs 复制代码
#include <stdio.h>
int main()
{
int a[10];
int t=0;
int length=sizeof(a)/sizeof(int);
printf("请输入10数字:\n");
for(int i=0;i<length;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("\n");
for(int i=0;i<length;i++)
{
if(i<length)
{
printf("%d ",a[i]);
}
}
printf("最小数为:%d,下标为%d",a[length-length],length-length);
return 0;
}
4)求总成绩及平均成绩
cs 复制代码
#include <stdio.h>
int main()
{
int a[10];
int t=0;
int k=0;
double p;
int length=sizeof(a)/sizeof(int);
printf("请输入10数字:\n");
for(int i=0;i<length;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("\n");
for(int i=0;i<length;i++)
{
k+=a[i];
}
p=k/10;
printf("平均数为%.2f\n",p);
return 0;
}

7. 一个二维数组赋了初值,用户输入一个数,在该二维数组中查找。找到则返回行列位 置,没找到则 提示。

cs 复制代码
#include <stdio.h>
int main()
{
int k;
int y[5][2]={1,2,3,4,5,6,7,8,9};
printf("请输入你要查找的数字:\n");
scanf("%d",&k);
for(int i=0;i<sizeof(y)/sizeof(y[0]);i++)
{
for(int j=0;j<sizeof(y[i])/sizeof(int);j++)
{
printf("%4d",y[i][j]);
}
printf("\n");
}
for(int i=0;i<sizeof(y)/sizeof(y[0]);i++)
{
for(int j=0;j<sizeof(y[i])/sizeof(int);j++)
{
if(k==y[i][j])
{
printf("你要查找到的数字位置为:%d行%d列\n",i,j);
return 0;
}
}
printf("\n");
}
printf("没有这个数字!\n");
return 0;
}

8. 二维整型数组,求所有元素平均值,求每行最大值,求每列最小值。

cs 复制代码
#include <stdio.h>
int main()
{
int y[5][2]={1,2,3,4,5,6,7,8,9,10};
int max[5]={0};
int min[2]={11,11};
int p[2][5]={0};
int he=0;
double k=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<2;j++)
{
he+=y[i][j];
if(max[i]<y[i][j])
{
max[i]=y[i][j];
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<2;j++)
{
p[j][i]=y[i][j];
}
}
for(int i=0;i<2;i++)
{
for(int j=0;j<5;j++)
{
if(min[i]>p[i][j])
{
min[i]=p[i][j];
}
}
}
k=(double)he/10;
printf("平均数为:%.1f\n",k);
for(int i=0;i<5;i++)
{
printf("max=%d\n",max[i]);
}
for(int i=0;i<2;i++)
{
printf("min=%d\n",min[i]);
}
}

9. 在行列相等数组计算主对角线元素的和

cs 复制代码
#include <stdio.h>
int main()
{
int y[3][3]={1,2,3,4,5,6,7,8,9};
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i==j)
{
printf("%d\n",y[i][j]);
}
}
}
}

10. 计算一个矩阵下三角元素的和

cs 复制代码
#include <stdio.h>
int main()
{
int y[3][3]={1,2,3,4,5,6,7,8,9};
int sum=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i>=j)
{
sum+=y[i][j];
}
}
}
printf("%d",sum);
}

11. 电影院为了答谢影迷的支持,在某一排的某一列座位上放置了一个大礼 包,放置礼物的位置具有这 样的规则(行和列的平方和为开店日期 512(5 月12日)); 请设计程序找出大礼包的位置,(假定电影院有20排,每排25 个座位)

cs 复制代码
#include <stdio.h>
int main()
{
int y[20][25];
for(int i=1;i<501;i++)
{
y[20][25]=i;
}
for(int i=0;i<20;i++)
{
for(int j=0;j<20;j++)
{
if((i*i+j*j)==512)
{
printf("%d行%d列\n",i,j);
}
}
}
}

12. 编写一个程序,读取用户输入的字符串,并将其反转输出。

cs 复制代码
#include <stdio.h>
#include <string.h>
int main()
{
char name[5];
printf("请输入您的姓名:\n");
scanf("%s",&name);
for(int i=4;i>=0;i--)
{
printf("%c",name[i]);
}
return 0;
}

13. 编写一个程序,判断用户输入的字符串是否为回文(即正反读都 一样的字符串)。

cs 复制代码
#include <stdio.h>
#include <string.h>
int main() {
int res = 0;
char t[100], arr[100];
printf("请输入字符串:");
scanf("%s", t);
for (int i = strlen(t) - 1, j = 0; i >= 0; i--, j++) {
arr[j] = t[i];
}
if (strcmp(t, arr)) {
printf("不是回文\n");
} else {
printf("是回文\n");
}
return 0;
}

函数作业

1. 编写一个函数,通过输入球的半径,返回球的体积;

cs 复制代码
#include <stdio.h>
#define PI 3.1415926
double yk(int r=0)
{
double t;
t=PI*r*r*r*(4.0/3.0);
return t;
}
int main()
{
int a=0;
double b;
printf("请输入半径:\n");
scanf("%d",&a);
b=yk(a);
printf("半径为%d球的体积为%lf",a,b);
return 0;
}

2. 编写一个函数,通过输入一个数字字符,返回该数字

cs 复制代码
#include <stdio.h>
int yao(char ke)
{
if(ke>='0'&&ke<='9')
{
return ke-'0';
}
else
{
return 0;
}
}
int main()
{
char i;
char b;
printf("请输入一个数字字符:\n");
scanf("%c",&i);
b=yao(i);
if(i>='0'&&i<='9')
{
printf("%d\n",b);
}
else
{
printf("!\n");
}
return 0;
}

3. 编写一个函数,输入四个数据分别表示2个点的x,y坐标,返回两点 之间的距离;

cs 复制代码
#include <stdio.h>
#include <math.h>
double ke(int x1,int x2,int y1,int y2)
{
double k;
k=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
return k;
}
int main()
{
int x1,x2,y1,y2;
double l;
printf("请输入第一个数的横坐标:\n");
printf("请输入第二个数的横坐标:\n");
printf("请输入第一个数的纵坐标:\n");
printf("请输入第二个数的纵坐标:\n");
scanf("%d,%d,%d,%d",&x1,&x2,&y1,&y2);
l=ke(x1,x2,y1,y2);
printf("这两点间的距离为:%.4f\n",l);
return 0;
}

4. 编写一个函数,通过参数输入一个整型数,返回该数各位上数字 的平方和;

cs 复制代码
#include <stdio.h>
int yk(int i)
{
int p=0;
int sum=0;
while(i>0)
{
sum=i%10;
p=sum*sum+p;
i=i/10;
}
return p;
}
int main()
{
int i=0;
printf("请输入你要计算的数字:\n");
scanf("%d",&i);
printf("结果为:%d\n",yk(i));
return 0;
}

5. 编写一个函数,通过参数输入x的值,计算如下的数学函数值, 当 x>5时, f(x) = 4x+7;否则 f(x) = -2x+3,返回结果值

cs 复制代码
#include <stdio.h>
int yao(int x)
{
int y;
if(x>5)
{
y=4*x+7;
return y;
}
else
{
y=-2*x+3;
return y;
}
}
int main()
{
int x;
printf("请输入x的值:\n");
scanf("%d",&x);
printf("结果为:%d\n",yao(x));
return 0;
}

6. 设计一个函数,用来求出多个数据的平均值;

cs 复制代码
#include <stdio.h>
double yao(int ke[5])
{
int sum = 0;
double p;
for(int i = 0; i < 5; i++)
{
sum += ke[i];
}
p = (double)sum / 5;
return p;
}
int main() {
int ke[5];
double l;
printf("请输入要计算的平均数(最多5个):\n");
for(int i = 0; i < 5; i++)
{
scanf("%d", &ke[i]);
}
l = yao(ke);
printf("平均值为%lf\n", l);
return 0;
}

7. 设计一个函数,用来查找一个字符串中某个字符的位 置;

cs 复制代码
#include <stdio.h>
void yao(char a[],char p)
{
for(int i=0;i<5;i++)
{
if(a[i]==p)
{
printf("你要的字符在字符串中的位置为%d",i);
}
}
}
int main()
{
char a[5];
char b;
printf("请输入五个字符:\n");
for(int i=0;i<5;i++)
{
scanf("%c",&a[i]);
}
getchar();
printf("请输入你要查找的字符:\n");
scanf("%c",&b);
yao(a,b);
}

8. 设计一个函数,把一个整型数字转成对应的字符串格 式

cs 复制代码
#include <stdio.h>
void yao(char a[],int b)
{
sprintf(a,"%d",b);
}
int main()
{
char i[10];
int b;
printf("请输入一个数字:\n");
scanf("%d",&b);
yao(i,b);
printf("结果为%s\n",i);
return 0;
}

9. 设计一个函数,统计字符串中大写字母的个数

cs 复制代码
#include <stdio.h>
void yao(char a[])
{
int p=0;
for(int i=0;i<5;i++)
{
if(64<a[i]&&a[i]<91)
{
p++;
}
}
printf("大写字母的个数为%d个\n",p);
}
int main()
{
char a[5];
printf("请输入5个字母:\n");
for(int i=0;i<5;i++)
{
scanf("%c",&a[i]);
}
yao(a);
return 0;
}

10. 设计函数,实现strcmp 的功能;z

cs 复制代码
#include <stdio.h>
int yk(const char x1[],const char x2[])
{
int i=0;
while(x1[i]&&x2[i])
{
if(x1[i]!=x2[i])
{
return x1[i]-x2[i];
}
i++;
}
return x1[i]-x2[i];
}
int main()
{
const char y1[]="wojiao";
const char y2[]="wojiao";
int yao=yk(y1,y2);
if(yao<0)
{
printf("%s<%s\n",y1,y2);
}
else if(yao>0)
{
printf("%s>%s\n",y1,y2);
}
else
{
printf("%s=%s\n",y1,y2);
}
}

11. 编写函数,用于判断输入的字符是不是个数 字。是返回1,不是返回0.

cs 复制代码
#include <stdio.h>
int yao(char b)
{
if(b>='0'&&b<='9')
{
return 1;
}
else
{
return 0;
}
}
int main()
{
char b;
printf ("请输入你要判断的数字字符:\n");
scanf("%c",&b);
if(yao(b)==1)
{
printf("是数字字符\n");
}
else
{
printf("不是数字字符\n");
}
}

12. 设计一程序,实现一个简单的计算器。 要求: 有菜单函数 和加、减、乘、除的函数 主函数 调用这些函数实现程序的功能.要求菜单函数 能 够输出如下的界面 1、加法 2、减法 3、 乘法 4、除法 0.退出

cs 复制代码
#include <stdio.h>
void showMenu();
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
int divide(int a, int b);
int main() {
int choice, num1, num2, result;
while (1) {
showMenu();
printf("请输入您的选择(0-4): ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入两个整数(用空格分隔):
");
scanf("%d %d", &num1, &num2);
result = add(num1, num2);
printf("%d + %d = %d\n", num1, num2,
result);
break;
case 2:
printf("请输入两个整数(用空格分隔):
");
scanf("%d %d", &num1, &num2);
result = subtract(num1, num2);
printf("%d - %d = %d\n", num1, num2,
result);
break;
case 3:
printf("请输入两个整数(用空格分隔):
");
scanf("%d %d", &num1, &num2);
result = multiply(num1, num2);
printf("%d * %d = %d\n", num1, num2,
result);
break;
case 4:
printf("请输入两个整数(用空格分隔):
");
scanf("%d %d", &num1, &num2);
if (num2 != 0) {
result = divide(num1, num2);
printf("%d / %d = %d\n", num1,
num2, result);
} else {
printf("除数不能为0!\n");
}
break;
case 0:
printf("退出程序。\n");
return 0;
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
void showMenu() {
printf("\n简单计算器\n");
printf("1、加法\n");
printf("2、减法\n");
printf("3、乘法\n");
printf("4、除法\n");
printf("0、退出\n");
}
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b) {
return a * b;
}
int divide(int a, int b) {
if (b != 0) {
return a / b;
} else {
printf("除数不能为0!\n");
return 0;
}
}

13. 设计函数实现冒泡排序;

cs 复制代码
#include <stdio.h>
void yao(int b[5])
{
int a;
for(int i=0;i<9;i++)
{
for(int j=0;j<9-i;j++)
{
if(b[j]>b[j+1])
{
a=b[j];
b[j]=b[j+1];
b[j+1]=a;
}
}
}
for(int i=0;i<9;i++)
{
printf("%d ",b[i]);
}
}
int main()
{
int b[10];
printf("请输入10数字:\n");
for(int i=0;i<9;i++)
{
scanf("%d",&b[i]);
}
printf("\n");
printf("排序后的数字为:\n");
yao(b);
}
相关推荐
泉崎14 分钟前
11.7比赛总结
数据结构·算法
你好helloworld15 分钟前
滑动窗口最大值
数据结构·算法·leetcode
AI街潜水的八角1 小时前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习
白榆maple1 小时前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少1 小时前
数据结构——线性表与链表
数据结构·c++·算法
此生只爱蛋2 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
咕咕吖3 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎3 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu3 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!4 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法