多余的话我不说了
需要的自己拿
#include<stdio.h>
#define PI 3.14
#include<stdlib.h>
#include<string.h>
void jiafa() /*加法*/
{
int i,j;
printf("输入两个数进行加法\n");
scanf("%d%d",&i,&j);
int k=i+j;
printf("结果十进制:%d\n",k);
printf("结果八进制:%o\n",k);
printf("结果十六进制:%x\n",k);
printf("\n");
}
void jianfa() /*减法*/
{
int i,j;
printf("输入两个数进行减法\n");
scanf("%d%d",&i,&j);
int k=i-j;
printf("结果十进制:%d\n",k);
printf("结果八进制:%o\n",k);
printf("结果十六进制:%x\n",k);
printf("\n");
}
void chengfa() /*乘法*/
{
int i,j;
printf("输入两个数进行乘法\n");
scanf("%d%d",&i,&j);
int k=i*j;
printf("结果十进制:%d\n",k);
printf("结果八进制:%o\n",k);
printf("结果十六进制:%x\n",k);
printf("\n");
}
void chufa() /*除法*/
{
int i,j;
printf("请输入两个数,前者除以后者:");
scanf("%d%d",&i,&j);
if(j==0)
{
printf("除数不能为0\n");
}
else
{
int k=i/j;
printf("结果十进制:%d\n",k);
printf("结果八进制:%o\n",k);
printf("结果十六进制:%x\n",k);
}
printf("\n");
}
void qumo() /*取模*/
{
int i,j;
printf("请输入两个数,前者取模后者:");
scanf("%d%d",&i,&j);
if(j==0)
{
printf("取模数不能为0\n");
}
else
{
int k=i%j;
printf("结果十进制:%d\n",k);
printf("结果八进制:%o\n",k);
printf("结果十六进制:%x\n",k);
}
printf("\n");
}
void yuanmianji() /*求圆面积*/
{
printf("输入半径:");
float r;
scanf("%f",&r);
float s=PI*r*r;
printf("圆的面积是:%f\n",s);
printf("保留两位小数是:%.2f\n",s);
printf("\n");
}
void qiuweishu() /*求位数*/
{
int i;
printf("输入一个数(1000以内):");
scanf("%d",&i);
int a,b,c;
if(i>99&&i<1000)
{
a=i/100;
b=(i%100)/10;
c=(i%100)%10;
printf("百位数字是:%d,十位数字是:%d,个位数字是:%d\n",a,b,c);
}
else if(i>9&&i<100)
{
a=i/10;
b=i%10;
printf("十位数字是:%d,个位数字是:%d\n",a,b);
}
else if(i<10&&i>-1)
{
printf("个位数字是:%d\n",i);
}
else {
printf("输入合法数字\n");
}
printf("\n");
}
void runnian() /*判断闰年*/
{
int i;
printf("请输入正确的年份:");
scanf("%d",&i);
if(i%4==0)
{
printf("是闰年\n");
}
else{
printf("不是闰年\n");
}
printf("\n");
}
void chengji() /*成绩转换*/
{
int i,j;
printf("输入有效成绩(0到100之间):");
scanf("%d",&i);
j=i/10;
switch(j)
{
case 10:{
printf("优秀\n");
break;
}
case 9:{
printf("优秀\n");
break;
}
case 8:{
printf("良\n");
break;
}
case 7:{
printf("中\n");
break;
}
case 6:{
printf("及格\n");
break;
}
default:printf("不及格\n");break;
}
printf("\n");
}
void jishuhe() /*奇数和*/
{
int i,j,k=0;
printf("请输入一个数:");
scanf("%d",&i);
for(j=1;j<i;j++)
{
if((j%2)!=0)
{
k=k+j;
}
}
printf("奇数和为:%d",k);
printf("\n");
}
void oushuhe() /*偶数和*/
{
int i,j,k=0;
printf("请输入一个数:");
scanf("%d",&i);
for(j=1;j<i;j++)
{
if((j%2)==0)
{
k=k+j;
}
}
printf("偶数和为:%d",k);
printf("\n");
}
void sandebeishu() /*3的倍数*/
{
int i,j,k;
printf("请输入一个数:");
scanf("%d",&i);
printf("倍数有:\n");
for(j=1;j<i;j++)
{
if(j%3==0)
{
printf("%d ",j);
printf("\n");
}
}
printf("\n");
}
void sanhewu() /*3和5的倍数*/
{
int i,j,k;
printf("输入一个数:");
scanf("%d",&i);
for(j=1;j<i;j++)
{
if(j%3==0)
{
if(j%5==0)
{
printf("%d",j);
printf("\n");
}
}
}
printf("\n");
}
void shuixianhua() /*水仙花数*/
{
int i,j,k;
int a,b;
printf("水仙花数如下:\n");
for(i=1;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
a=i*100+j*10+k;
b=i*i*i+j*j*j+k*k*k;
if(a==b)
{
printf("%d ",a);
}
}
}
}
printf("\n");
}
int max(int a,int b) /*最大值*/
{
if(a>b)
{
return a;
}
else{
return b;
}
}
void zuidazuixiao() /*最大最小*/
{
int i,j;
printf("请输入两个值:");
scanf("%d%d",&i,&j);
if(i>j)
{
printf("最大值:%d,最小值:%d",i,j);
}
else
{
printf("最大值:%d,最小值:%d",j,i);
}
printf("\n");
}
void maopaopaixu(int*p,int len) /*冒泡排序*/
{
int i,j,temp;
for(i=0;i<len;i++)
{
for(j=0;j<len;j++)
{
if(p[i]>p[i+1])
{
temp=p[i];
p[i]=p[i+1];
p[i+1]=temp;
}
}
}
printf("排序后:");
for(i=0;i<len+1;i++)
{
printf("%d ",p[i]);
}
printf("\n");
}
void juzhenzhuanzhi() /*矩阵转置*/
{
int arr[3][3];
int i,j,k;
printf("输入三维数组:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("数组为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
printf("转置后:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",arr[j][i]);
}
printf("\n");
}
}
void duijiaoxian() /*求对角线和*/
{
int arr[3][3];
int i,j,k;
printf("输入三维数组:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("数组为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
int num=arr[1][1]+arr[2][2]+arr[0][0];
printf("和为:%d",num);
}
void tongji() /*统计单词个数*/
{
getchar();
char arr[100];
int i,j,k;
printf("输入句子:");
gets(arr);
j=0;k=0;
for(i=0;i<100;i++)
{
if(arr[i]==' ')
{
j=0;
}
else if(j==0)
{
j=1;
k++;
}
}
printf("有%d个单词。",k);
printf("\n");
}
void chengjipaixu() /*结构体成绩排序*/
{
struct paixu{
int sno;
char name[20];
int grade;
};
struct paixu stu[10];
int i,j,k;
for(i=0;i<10;i++)
{
printf("学生%d",i+1);
printf("学号:");
scanf("%d",&stu[i].sno);
printf("姓名:");
getchar();
gets(stu[i].name);
printf("成绩:");
scanf("%d",&stu[i].grade);
}
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(stu[j].sno>stu[j+1].sno)
{
k=stu[j].sno;
stu[j].sno=stu[j+1].sno;
stu[j+1].sno=k;
}
}
}
printf("排序后:\n");
for(i=0;i<10;i++)
{
printf("学号:%d",stu[i].sno);
printf("姓名:");
puts(stu[i].name);
printf("成绩:%d",stu[i].grade);
printf("\n");
}
int zong=0;
for(i=0;i<10;i++)
{
zong=zong+stu[i].grade;
}
printf("总成绩:%d\n",zong);
printf("平均成绩:%d\n",zong/10);
}
/*--------------------------------------------------------*/
typedef struct jingtai{
int a;
struct jingtai *next;
}jing;
void jinglian() /*静态链表*/
{
jing p1,p2,p3,p4;
p1.a=11;
p2.a=22;
p3.a=33;
p4.a=44;
p1.next=&p2;
p2.next=&p3;
p3.next=&p4;
p4.next=NULL;
jing *head,*p;
head=&p1;
do{
printf("%d\n",head->a);
head=head->next;
}while(head!=NULL);
printf("\n");
}
/*--------------------------------------------------------*/
typedef struct node1{
int num;
struct node1 *next;
}node;
void donglianbiao() /*动态链表*/
{
printf("向链表中输入数字,负数停止\n");
printf("链表显示数据最后一个为负数(代表结束)\n");
node *head,*link,*end;
head=(node*)malloc(sizeof(node));
link=head;
while(1)
{
end=(node*)malloc(sizeof(node));
link->next=end;
link=end;
int j;
scanf("%d",&j);
if(j>=0){
end->num=j;
}
else{
end->num=-1;
break;
}
}
end->next=NULL;
node *h=head->next;
while(h!=NULL)
{
printf("%d\n",h->num);
h=h->next;
}
printf("\n");
}
/*--------------------------------------------------------*/
typedef struct stu1{
char name[20];
int grade;
}stu;
void wenjian() /*文件输入*/
{
FILE *fp;
fp=fopen("d:\\123.txt","w+");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
stu b1[10],b2[10];
int i;
printf("输入十个学生的信息:\n");
for(i=0;i<10;i++)
{
printf("姓名:\n");
getchar();
gets(b1[i].name);
printf("成绩:\n");
scanf("%d",&b1[i].grade);
}
for(i=0;i<10;i++)
{
fprintf(fp,"%s %d\n",b1[i].name,b1[i].grade);
}
rewind(fp);
for(i=0;i<10;i++)
{
fscanf(fp,"%s %d\n",b2[i].name,&b2[i].grade);
}
for(i=0;i<10;i++)
{
b2[i].grade=b2[i].grade+10;
}
for(i=0;i<10;i++)
{
fprintf(fp,"变化后:\n");
fprintf(fp,"%s %d\n",b2[i].name,b2[i].grade);
}
fclose(fp);
}
int main()
{
/*功能罗列*/
printf("--小小计算器--\n");
printf("1.加法\n");
printf("2.减法\n");
printf("3.乘法\n");
printf("4.除法\n");
printf("5.取模运算\n");
printf("6.计算圆面积\n");
printf("7.求出1000内的数字位数\n");
printf("8.判断闰年\n");
printf("9.成绩转换\n");
printf("10.计算从1到输入数之间的奇数和(for)\n");
printf("11.计算从1到输入数之间的偶数和(while)\n");
printf("12.输出从1到输入数之间的3的倍数(do-while)\n");
printf("13.同上输出既是3的倍数又是5的倍数的数\n");
printf("14.求水仙花数\n");
printf("15.求最大值\n");
printf("16.求最大值最小值\n");
printf("17.冒泡排序\n");
printf("18.矩阵转置\n");
printf("19.求对角线和\n");
printf("20.统计单词个数\n");
printf("21.学生成绩排序\n");
printf("22.静态创建链表\n");
printf("23.动态创建链表\n");
printf("24.学生成绩普涨10分\n");
printf("25.退出\n");
printf("\n");
printf("\n");
int whilezhi=1;
while(whilezhi)
{
printf("请输入数字选择功能:");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:jiafa();break;
case 2:jianfa();break;
case 3:chengfa();break;
case 4:chufa();break;
case 5:qumo();break;
case 6:yuanmianji();break;
case 7:qiuweishu();break;
case 8:runnian();break;
case 9:chengji();break;
case 10:jishuhe();break;
case 11:oushuhe();break;
case 12:sandebeishu();break;
case 13:sanhewu();break;
case 14:shuixianhua();break;
case 15:{
int panduanzhi1,panduanzhi2;
printf("输入两个数:");
scanf("%d%d",&panduanzhi1,&panduanzhi2);
printf("最大值为:");
printf("%d",max(panduanzhi1,panduanzhi2));
printf("\n");
break;
}
case 16:zuidazuixiao();break;
case 17:{
int geshu;
printf("输入数组个数:");
scanf("%d",&geshu);
int *arr1=(int*)malloc(geshu*sizeof(int));
int ii1;
printf("输入数组元素:");
for(ii1=0;ii1<geshu;ii1++)
{
scanf("%d",&arr1[ii1]);
}
printf("数组为:");
for(ii1=0;ii1<geshu;ii1++)
{
printf("%d ",arr1[ii1]);
}
maopaopaixu(arr1,geshu-1);
free(arr1);
break;
}
case 18:juzhenzhuanzhi();break;
case 19:duijiaoxian();break;
case 20:tongji();break;
case 21:chengjipaixu();break;
case 22:jinglian();break;
case 23:donglianbiao();break;
case 24:wenjian();break;
case 25:whilezhi=0;
}
}
return 0;
}