C语言综合练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言综合练习
1.互换两个变量的值。
#include
void main()
{
float num1,num2,temp;
printf("\n请输入两个数:");
scanf("%f %f",&num1,&num2);
printf("\n交换前的两个数是:%.2f %.2f\n",num1,num2);
//交换两个数。
temp=num1;
num1=num2;
num2=temp;
printf("交换后的两个数是:%.2f %.2f\n",num1,num2);
}
2.要求输入员工的基本工资,其中物价津贴占基本工资的40%,房屋津贴占基本工资的20%,显示员工的详细信息与实际工资。
#include
void main()
{
float basic,Prsubsidy,housesubsidy,salary;
printf("\n请输入基本工资:");
scanf("%f",&basic);
Prsubsidy=basic*40/100;
housesubsidy=basic*20/100;
salary=basic+Prsubsidy+housesubsidy;
//显示该员工的详细信息。
printf("\n以下是该员工的工资金详细信息\n");
printf("基本工资为:%.2f\n物价津贴为:%.2f\n房屋津贴:%.2f\n实际工资:%.2f\n",basic,Prsubsidy,housesubsidy,salary);
}
3.大小写字母转换。
#include
void main()
{
char ch,to_upper,to_lower;
printf("\n请输入一个字母:");
ch=getchar();
if(ch>='a' && ch<='z')
{
to_upper=ch-32;
printf("\n它的大写字母是:%c\n",to_upper);
}
if(ch>='A' && ch<='Z')
{
to_lower=ch+32;
printf("\n它的小写字母是:%c\n",to_lower);
}
}
4.要求输出华氏度,再转换为摄氏度,并将两者显示出来。
#include
void main()
{
float fahrenheit,degrees;
printf("\n请输入华氏度数:");
scanf("%f",&fahrenheit);
degrees=5/9.0*(fahrenheit-32);
printf("\n华氏度为:%.2f\n摄氏度为:%.2f\n",fahrenheit,degrees);
}
5.输入一个四位数的数字,将该数每一位相加求和。
#include
void main()
{
int num,ge,shi,bai,qian;
float sum=0;
printf("\n请输一个四位数:");
scanf("%d",&num);
ge=num%10;
shi=(num/10)%10;
bai=(num/100)%10;
qian=num/1000;
sum=ge+shi+bai+qian;
printf("\n这个数的个位:%d 十位:%d 百位:%d 千位:%d \n",ge,shi,bai,qian);
printf("\n各位数之和为:%.2f\n",sum);
}
6.接收用户输入数值,但以字符形式表示出来。
#include
void main()
{
int x;
char ch;
printf("\n请输入一个整数:");
scanf("%d",&x);
printf("\n%d数字对应的字符是:\n",x);
ch=putchar(x);
printf("\n");
}
7.对输入的三个数进行排序。
#include
void main()
{
int x,y,z;
int temp;
printf("\n请输入三个整数:");
scanf("%d %d %d",&x,&y,&z);
//进行排序。
if(x>y)
{
temp=x;
x=y;
y=temp;
}
if(x>z)
{
temp=x;
x=z;
z=temp;
}
if(y>z)
{
temp=y;
y=z;
z=temp;
}
printf("\n排序后的三个数是:%d %d %d\n",x,y,z);
}
8.某超市规则:
所有的本超市的会员购买高度享受9折优惠;对于非会员的但购物满100元的也可以享受9折优惠
;本身是会员也购物满100元则可享受8折的优惠。
#include
void main()
{
char ch;
float cost1,cost2,cost3;
double total_cost=0,discount=0,pay=0;
printf("\n是否是会员(y/n):");
fflush(stdin);
scanf("%c",&ch);
printf("\n请输入第一件商品的价格:");
scanf("%f",&cost1);
printf("\n请输入第二件商品的价格:");
scanf("%f",&cost2);
printf("\n请输入第三件商品的价格:");
scanf("%f",&cost3);
total_cost=cost1+cost2+cost3;
if(ch=='y' || total_cost>=100)
{
discount=total_cost*0.1;
}
if(ch=='y' && total_cost>=100)
{
discount=total_cost*0.2;
}
pay=total_cost-discount;
printf("\n购物总额:%.2f元\n",total_cost);
printf("\n折扣金额:%.2f元\n",discount);
printf("\n应付总额:%.2f元\n",pay);
}
9.银行提供了整存取定期储蓄业务,其存期分为一年(年利率2.25%)、两年(年利率2.7%)、三年(年利率3.24%)、五年(年利率3.6%),到期凭存单支取本息。
利息=本金*年利率*存期
本息本金+利息
#include
void main()
{
char period;//存期。
float my_money,APR_money,total_money;//本金。
printf("\n请在一年、两年、三年、五年中输入一个:");
scanf("%c",&period);
printf("\n请输入你的本金:");
scanf("%f",&my_money);
switch(period)
{
case '1':
APR_money=my_money*2.25/100*1;
break;
case '2':
APR_money=my_money*2.7/100*2;
break;
case '3':
APR_money=my_money*3.24/100*3;
break;
case '5':
APR_money=my_money*3.6/100*5;
break;
default:
printf("\n输入错误!\n");
}
total_money=my_money+APR_money;
printf("您收入的利息为:%.2f\n本息为:%.2f\n",APR_money,total_money);
}
10.通过输入1~7判断星期,并显示问候语。
#include
void main()
{
char ch;
printf("\n请输入1~7表示星期:");
ch=getchar();
if(ch=='6' || ch=='7')
printf("\n周末愉快!\n");
else if(ch>='1' && ch<='5')
printf("\n工作日愉快!\n");
else
printf("\n输入错误!\n");
}
11.用户购买商品的数量大于等于10件,并购物总额大于等于10000元时,商店给10%的折扣。接收购物数量与总金额,要求计算出折扣额和应付金额。
#include
void main()
{
int num;
float total_cost=0,discount=0,pay=0;
printf("\n请输入购物数量与总金额:");
scanf("%d %f",&num,&total_cost);
if(num>=10 && total_cost>=10000)
{
discount=total_cost*10/100;
pay=total_cost-discount;
printf("\n折扣额是:%.2f\n应付金额是:%.2f\n",discount,pay);
}
else
printf("\n不符合优惠要求!\n");
}
12.通过输入和差表达式求其值。
#include
void main()
{
float num1,num2,jia,jian;
char op;
printf("\n请输入要计算两数和或差的表达式:");
scanf("%f%c%f",&num1,&op,&num2);
switch(op)
{
case '+':
jia=num1+n
um2;
printf("两数和为:%.2f\n",jia);
break;
case '-':
jian=num1-num2;
printf("两数差为:%.2f\n",jian);
break;
default:
printf("\n输入错误!\n");
}
}
13.某公司员工工资包括底薪和奖金两部分,每个员工的底薪都是1000元,而奖金取决于员工的级别。
等级 奖金占底薪的百分比
A 45%
B 40%
C 30%
D 25%
根据员工的级别计算应付给员工的工资。
#include
#define BASEPAY 1000
void main()
{
char grade;
float total;
printf("\n请输入员工的(A-D)级别:");
grade=getchar();
switch(grade)
{
case 'A':
total=BASEPAY+BASEPAY*45/100;
printf("\n该员工收到的工资是:%.2f\n",total);
break;
case 'B':
total=BASEPAY+BASEPAY*40/100;
printf("\n该员工收到的工资是:%.2f\n",total);
break;
case 'C':
total=BASEPAY+BASEPAY*30/100;
printf("\n该员工收到的工资是:%.2f\n",total);
break;
case 'D':
total=BASEPAY+BASEPAY*25/100;
printf("\n该员工收到的工资是:%.2f\n",total);
break;
default:
printf("\n输入错误!\n");
}
}
14.输入某年某月某日,判断应付给该员工的工资。(若是闰年且输入月分大于3时,需多加一天)
#include
void main()
{
int year,month,day;
int sumday=0;
printf("\n请输入年份、月份、日:");
scanf("%d %d %d",&year,&month,&day);
if((year%4==0 && year%100!=0)||(year%400==0)&&(month>=3))//判断是否是闰年,闰2月。
{
sumday=(month-1)*30+day+1;
printf("\n这一天是这一年的第 %d 天\n",sumday);
}
else
{
sumday=(month-1)*30+day;
printf("\n这一天是这一年的第 %d 天\n",sumday);
}
}
15.计算1~n个数的和。
#include
void main()
{
int number;
int sum=0;
printf("\n请输入一个正整数:");
scanf("%d",&number);
if(number>0)
{
while(number>0)
{
sum+=number;
number--;
}
printf("\n1~n个数的和为:%d\n",sum);
}
else
printf("\n输入数据无效!\n");
}
16.用于接收用户输入的数,然后显示从0到该数为止表示的所有字符。
#include
void main()
{
char ans;
int inum,cnt;
ans='y';
while(ans=='y')
{
ans=' ';
printf("请输入一个数:");
scanf("%d",&inum);
cnt=0;
while(cnt
printf("\n%d:%c\n",cnt,cnt);
cnt++;
}
printf("\n你是否要继续(y/n)?");
fflush(stdin);
scanf("%c",&ans);
}
}
17.输入一个正整数,求该数的阶乘。询问用户是否愿意继续。
#include
void main()
{
int num;
int chengnum=1;
char ch; //以while()形式出现时,char ch='y'; while(ch=='y')
do
{
ch=' ';
printf("\n请输入一个阶乘顶数:");
scanf("%d",&num);
while(num>0)
{
chengnum*=num;
num--;
}
printf("\n阶乘积为:%d\n",chengnum);
printf("\n还要继续吗(y/n)?");
fflush(std
in);//清空缓存数据。
ch=getchar();
}while(ch=='y' || ch=='Y');
}
18.输入一个正整数,然后求该数的各位数之和。
#include
void main()
{
int n,sum=0,right_digit;
printf("\n请输入一个正整数:");
scanf("%d",&n);
do
{
right_digit=n%10;
sum+=right_digit;
n/=10;
}while(n>0);
printf("\n各个数位之和是:%d\n",sum);
}
19.将一个正整数分解质因数。
#include
void main()
{
int n,k;
printf("\n请输入一个要分解的正整数:");
scanf("%d",&n);
for(k=2;k<=n;)
{
if(n%k==0)
{
n=n/k;
printf("%d ",k);
}
if(n%k!=0)
{
k++;
}
}
printf("\n");
}
20.输入某个班级学员的成绩,计算该班学员的平均分。班级的人数要求输入。
根据输入人数分别录入学员成绩。计算该班学员平均分,并显示出来。最后询问用户是否继续,直到用户自己结束程序退出。
#include
void main()
{
char classno,ch;
int students,no,score;
float ave,sum;
do
{
printf("\n请输入班级号:");
fflush(stdin);//询问是否继续中一定要清空数据缓存。
scanf("%c",&classno);
printf("\n请输入该班级的学员总数:");
fflush(stdin);//询问是否继续中一定要清空数据缓存。
scanf("%d",&students);
no=1,sum=0;
while(no<=students)
{
printf("\n请输入学号 %d 的成绩:",no++);
fflush(stdin);
scanf("%d",&score);
sum+=score;
}
ave=sum/students;
printf("\n该班学员的平均分成绩为:%.2f",ave);
printf("\n是否输入另一个班级的成绩(y/n)?");
fflush(stdin);//询问是否继续中一定要清空数据缓存。
ch=getchar();
}while(ch=='y' || ch=='Y');
}
21.用于接收用户输入10个字符,统计其中大写字母和小写字母的个数。比较大写字母与小写字母的个数,并显示相应的消息。
#include
#define N 10
void main()
{
char inp;
int i,low,upp;
printf("\n请输入一系列字符:");
low=0;
upp=0;
for(i=0;i
inp=getchar();
if(inp>='a' && inp<='z')
low++;
else if(inp>='A' && inp<='Z')
upp++;
putchar(inp);
}
if(low>upp)
printf("\n小写字母比大写字母多%d个。\n",low-upp);
else if(upp>low)
printf("\n大写字母比小写字母多%d个\n",upp-low);
else
printf("\n小写字母和大写字母%d个数相等。\n",low);
}
22.接收10个数,求这10个数的和。用户可以通过输入999终止程序,并显示输入的数的和。
#include
void main()
{
int inum,sum,cnt;
sum=0;
printf("\n请输入10个数,或输入999中止输入。\n");
for(cnt=0;cnt<10;cnt++)
{
scanf("%d",&inum);
if(inum==999)
{
break;
}
sum+=inum;
}
printf("\n这%d个数的和为:%d\n",cnt,sum);
}
23.打印以下星号:
*
* *
* *
* *
* *
* *
*
#include
io.h>
void main()
{
int i,j,k;
//i用于控制行数。
//j用于控制空格。
//k用于控制星号。
//先打印前4行。
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
if(k==1 || k==2*i-1)//控制打印边界的星号。
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
//再打印后3行。
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(k=1;k<=7-2*i;k++)
{
if(k==1 || k==7-2*i)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
24.最多接收10个数,并求出其中所有正数的和。用户可以通过输入999终止程序,统计用户输入的正数个数,并显示这些正数的和。
#include
void main()
{
int num,sum=0;
int count=0;
int i;
printf("\n请输入10个数:\n");
for(i=1;i<=10;i++)
{
scanf("%d",&num);
if(num==999)
{
printf("退出本程序!");
break;
}
if(num>0)
{
count++;
sum+=num;
}
}
printf("\n输入的数中有%d个正数,这些正数的和为:%d\n",count,sum);
}
25.打印如下图形:
请输入一个数:5
55555
4444
333
22
1
1
22
333
4444
55555
#include
void main()
{
int i,j;
int num,count=0;
printf("\n请输入一个数:");
scanf("%d",&num);
count=num;
printf("\n");
//打印上三角形。
for(i=num;i>=1;i--)
{
for(j=1;j<=i;j++)
{
printf("%d",num);
}
num--;
printf("\n");
}
printf("\n");
//打印下三角形。
num+=1;
for(i=1;i<=count;i++)
{
for(j=1;j<=i;j++)
{
printf("%d",num);
}
num++;
printf("\n");
}
}
26.求1!+2!+3!+...+10!的和。
#include
#define N 10
void main()
{
int i,j;
float cheng=1;
float sum=0;
printf("\n1!+2!+3!+...+10!的和\n");
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
cheng*=j;
}
sum+=cheng;
printf("%d!=%-10.2f ",i,cheng);
cheng=1;
if(i%4==0)
printf("\n");
}
printf("\n");
printf("\n1!+2!+3!+...+10!=%.2f\n\n",sum);
}
27.以表格形式显示1到10的乘法表。
#include
void main()
{
int i,j;
int cheng=1;
printf("\n乘法表:\n\n");
printf(" X | 1 2 3 4 5 6 7 8 9 10\n");
printf("----------------------------------------------\n");
for(i=1;i<=10;i++)
{
printf(" %-2d |",i);
for(j=1;j<=10;j++)
{
cheng=i*j;
printf("%4d",cheng);
cheng=1;
}
printf("\n");
}
}
28.接收10件商品的每一件价格,并显示出每件商品价格和应付金额。
#include
void main()
{
float price[10];
float sum=0;
int i;
printf("\n请输入每一件商品的价格:");
for(i=0;i<10;i++)
{
scanf("%f",&price[i]);
sum+=price[i];
}
printf("\n每件商品的价格分别为:\n");
for(i=0;i<10;i++)
{
printf("%7.2f",price[i]);
}
printf("\n");
printf("\n应付总金额:%.2f\n",sum);
}
29.一空公司有四个销售员,每位销售员负责销售四件商品。接收每名销售员销售的各类产品的数量。
打印产品销售明细表,明细表包括每类产品的销售总数,以及每位销售的产品数量占总销售量的百分比。
#include
void main()
{
int salesman[4][4];
char product;
int i,j,sum=0;
double grand_total=0.0;
double factor,temp1,temp2,temp3,temp4;
for(i=0;i<4;i++)
{
product='A';
for(j=0;j<4;j++)
{
printf("\n请输入销售员 %d 销售产品 %c 的数量:",i+1,product);
scanf("%d",&salesman[i][j]);
grand_total+=salesman[i][j];
product++;
}
printf("\n");
}
printf("\n产品销售汇总表\n");
printf("----------------------------------------------\n");
printf("产品 \tA\tB\tC\tD\n");
printf("----------------------------------------------\n");
printf("销售总数");
for(j=0;j<4;j++)
{
sum=0;
for(i=0;i<4;i++)
{
sum+=salesman[i][j];
}
printf("\t%d",sum);
}
printf("\n\n\n");
printf("\n产品销售百分比明细表\n");
printf("-------------------------------------------------------\n");
printf("销售员 产品\n");
printf("--------------------------------------------------------\n");
printf(" A B C D 合计(销售员)\n");
factor=100/grand_total;
for(i=0;i<4;i++)
{
temp1=salesman[i][0]*factor;
temp2=salesman[i][0]*factor;
temp3=salesman[i][0]*factor;
temp4=salesman[i][0]*factor;
printf("\n%d \t%6.2f \t%6.2f \t%6.2f \t%6.2f \t%6.2f\n",i+1,temp1,temp2,temp3,temp4,temp1+temp2+temp3+temp4);
}
}
30.将一个数组中的数据逆序,并输出原始数组中听数据及逆序后数组中的数据。
#include
void main()
{
int num[10];
int i;
printf("\n请输入10个数据:");
for(i=0;i<10;i++)
{
scanf("%d",&num[i]);
printf("%4d",num[i]);
}
printf("\n逆序后的数据为:\n");
for(i=9;i>=0;i--)
{
printf("%4d",num[i]);
}
printf("\n");
}
31.打印杨辉三角形。
#include
void main()
{
int num[10][10];
int i,j;
printf("\n打印杨辉三角形\n");
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
if(i>1 && j>0 && jnum[i][j]=num[i-1][j-1]+num[i-1][j];
else
num[i][j]=1;
printf("%4d",num[i][j]);
}
printf("\n");
}
}
32.在一个已经排好的数组。输入一个数,在数组中查找 是否有这个数,如果有则将该数从数组中删除并不影响原数组的排序;如果没有则显示数组中没有这个数!
#include
void main()
{
int sernum,num[5]={1,2,3,4,5};
int i,j,flag=0;
printf("\n输入要查找的数字:");
scanf("%d",&sernum);
for(i=0;i<5;i++)
{
if(num[i]==sernum)
{
flag=1;
j=i+1;
}
if(flag)
{
num[i]=num[i+1];
}
}
if(flag)
print
f("\n数组第 %d 个元素存在你要查找的数字!\n",j);
else
printf("\n数组中没有你要查找的数字!\n");
printf("\n删除查找到的元素数字后为:");
for(i=0;i<4;i++)
printf("%d ",num[i]);
printf("\n");
}
33.要求用户输入两个正数边界值,输出这两个数之间的所有偶数。如果输入的边界值是偶数,那么也应该将这两个数输出。
#include
void main()
{
int num1,num2;
int *ptr;
printf("\n请输入区间的下限:");
scanf("%d",&num1);
printf("\n请输入区间的上限:");
scanf("%d",&num2);
ptr=&num1;
printf("\n从 %d 到 %d 之间的偶数有:\n",num1,num2);
for((*ptr);*ptr<=num2;(*ptr)++)
{
if((*ptr)%2==0)
{
printf("%4d",*ptr);
}
}
printf("\n");
}
34.将班里的n个人围成一圈,顺序编号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,
然后从下一个人重新开始,最后留下的那个人就被选为班长。请问按照这个规则,选出的班长是原来编号的第几号。
#include
#define MAX 50
void main()
{
int i,k,n,m,num[MAX],*p;
printf("\n请输入总人数:");
scanf("%d",&n);
p=num;
for(i=0;i
*(p+i)=i+1;//指定数组中n个人的编号是1到n。
}
i=0,k=0,m=0;
while(m
if(*(p+i)!=0)
k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)
i=0;
}
while(*p==0)
{
p++;
}
printf("\n编号为 %d 的学员被当选为班长\n",*p);
}
35.从键盘输入5个整数存入一个数组。用指针的方法从中查找某个整数,找到时输出该数所在的下标,否则输出“没有找到”。
#include
void main()
{
int i,n,t,num[5],*p;
bool flag=false;
printf("\n请输入5个整数:");
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
}
printf("\n输入要查找的整数:");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if(num[i]==n)
{
flag=true;
t=i;
}
}
if(flag)
printf("\n该数所在的下标为:%d\n",t);
else
printf("\n该数没有找到\n");
}
36.将字符数组arr1[5]={'H','e','l','l','o'}和arr2[5]={'W','o','r','l','d'}两个数组用指针打印合并保存在arr3数组中。
#include
void main()
{
char arr1[5]={'H','e','l','l','o'};
char arr2[5]={'W','o','r','l','d'};
char arr3[15];
int i;
for(i=0;i<5;i++)
{
arr3[i]=arr1[i];
}
i=0;
while(i<5)
{
arr3[i+5]=arr2[i];
i++;
}
for(i=0;i<10;i++)
printf("%c",arr3[i]);
printf("\n");
}
#include
void main()
{
char arr1[5]={'H','e','l','l','o'};
char arr2[5]={'W','o','r','l','d'};
char arr3[15],*p;
int i;
for(i=0;i<5;i++,p++)
{
p=&arr1[i];
arr3[i]=*p;
}
for(i=0;i<5;i++,p++)
{
p=&arr2[i];
arr3[i+5]=*p;
}
for(i=0;i<10;i++)
printf("%c",arr3[i]);
printf("\n");
}
37.接收输入一个数组的5个值,要
求以指针实现左右反转输出。
#include
void main()
{
int num[5]={12,56,78,34,21};
int i,*ptr1,*ptr2,temp;
printf("\n原如数组:\n");
for(i=0;i<5;i++)
{
printf("%4d",num[i]);
}
printf("\n左右反转顺序:\n");
for(i=0;i<5/2;i++,ptr1++,ptr2++)
{
ptr1=&num[i];
ptr2=&num[5-i-1];
temp=*ptr1;
*ptr1=*ptr2;
*ptr2=temp;
}
for(i=0;i<5;i++)
printf("%4d",num[i]);
printf("\n");
}
38.接收两个数组的值,将这两个数组中的值依次相加保存在第三个数组中,要求用指向数组的指针实现。
#include
void main()
{
int num1[5],num2[5],num3[5];
int i;
int *ptr1,*ptr2;
printf("\n请输入num1的值:");
for(i=0;i<5;i++)
{
scanf("%d",&num1[i]);
}
printf("\n请输入num2的值:");
for(i=0;i<5;i++)
{
scanf("%d",&num2[i]);
}
ptr1=num1;
ptr2=num2;
printf("\n数组num1和num2各元素之和分别排列为:\n");
for(i=0;i<5;i++)
{
num3[i]=(*ptr1++)+(*ptr2++);
printf("%4d",num3[i]);
}
printf("\n");
}
39.输入一个数,使用内置函数pow()求该数从1到10次幂的值,然后求出该数所有次幂的和。
#include
#include
void main()
{
int n,i;
double power,sum=0;
printf("\n请输入一个数:");
scanf("%d",&n);
for(i=1;i<=10;i++)
{
power=pow(n,i);
printf("%d 的 %d 次幂为:%5.0f\n",n,i,power);
sum+=power;
}
printf("\n所有次幂和为:%5.0f\n",sum);
}
40.完成一个十进制转二进制、十进制转八进制、十进制转十六进制。根据用户的选择作相应的操作,直到用户输入0才退出程序。
#include
void Hexconver(int );
void main()
{
int choose;
do
{
printf("\n0、退出\n1、十进制->二进制\n2、十进制->八进制\n3、十进制->十六进制\n");
printf("\n请选择功能:");
fflush(stdin);
scanf("%d",&choose);
switch(choose)
{
case 0:
printf("\n退出本程序!\n");
break;
case 1:
Hexconver(2);
break;
case 2:
Hexconver(8);
break;
case 3:
Hexconver(16);
break;
default:
printf("\n输入错误!\n");
}
}while(choose);
}
void Hexconver(int s)
{
int p[10],count,k,i;
int num;
k=s;
printf("\n请输入一个十进制整数:");
scanf("%d",&num);
count=0;
while(num!=0)
{
p[count]=num%k;
if(p[count]>=10)
{
if(p[count]==10)
p[count]='A';
else
p[count]='A'+(p[count]-10);
}
num/=k;
count++;
}
printf("\n转换为 %d 进制:",k);
for(i=count-1;i>=0;i--)
{
if(p[i]>=10)
{
if(p[i]==10)
{
printf("%c",p[i]);
}
else
{
printf("%c",p[i]);
}
}
else
printf("%d",p[i]);
}
printf("\n");
}
41.编写一个用于接收3到10之间一个正整数,然后输出由星号组成的正方形。
#include
void Rec(int );
void main()
{
int num
;
char ch;
do
{
printf("\n请输入3~10之间的一个正整数:");
fflush(stdin);
scanf("%d",&num);
Rec(num);
printf("\n还要继续吗(y/n)?");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='y');
}
void Rec(int s)
{
int k=s;
int i,j;
for(i=0;i
for(j=0;j
if(i>0 && i<(k-1) && j>0 && j<(k-1))
printf(" ");
else
printf("*");
}
printf("\n");
}
}