C语言习题
///////////////////////////////////////////////////////////////////////////////////
将学生信息打印到文本文件
#include<stdio.h>
struct student
{
int num;
char name[20];
float score;
char grade;
};
struct student stu[5];
void write();
int main()
{
for(int i=0;i<5;i++)
{
printf("第%d同学\n学号:",i+1);
scanf("%d",&stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
printf("成绩:");
scanf("%f",&stu[i].score);
switch((int)stu[i].score/10)
{
case 10:
case 9:stu[i].grade='A';break;
case 8:stu[i].grade='B';break;
case 7:stu[i].grade='C';break;
case 6:stu[i].grade='D';break;
default:stu[i].grade='E';
}
}
write();
return 0;
}
void write()
{
FILE *fp=fopen("hello.txt","w+");
if(fp==NULL)
{
perror("fp");
}
fprintf(fp,"学号\t姓名\t评级\t成绩\n");
for(int i=0;i<5;i++)
{
fprintf(fp,"%d\t\t%s\t\t%c\t\t%f\n",stu[i].num,stu[i].name,stu[i].grade,stu[i].score);
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
功能函数,字符串查找,在一个字符串中查找一个字符,并返回这个字符的地址
#include <stdio.h>
char *chh(char ch[],char n);
int main()
{
char ch[31]={0};
printf("请输入一串字符:");
scanf("%s",ch);
char n;
getchar();
printf("请输入要查找的字符:");
scanf("%c",&n);
char *p=chh(ch,n);
printf("%c的地址为:%p\n",n,p);
return 0;
}
char *chh(char ch[],char n)
{
for(int i=0;i<30;i++)
{
if(ch[i]=='\0')
{
printf("没有要找的字符!\n");
return 0;
}
else if(ch[i]==n)
{
return &ch[i];
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
水果总价
struct sum
{
float apple;
float putao;
float banna;
}price={5,6.8,5.2};
int main()
{
float a,b,c;
printf("请输入买入的苹果斤数:");
scanf("%f",&a);
printf("请输入买入的葡萄斤数:");
scanf("%f",&b);
printf("请输入买入的香蕉斤数:");
scanf("%f",&c);
a=price.apple*a;
b=price.putao*b;
c=price.banna*c;
printf("总价为:%.2f\n",a+b+c);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数 实现字符串连接
int main()
{
char a[1024]={0};
char b[1024]={0};
printf("请输入第一个字符串:");
gets(a);
printf("请输入第二个字符串:");
gets(b);
char *m=a;
char *n=b;
lianjie(m,n);
for(int i=0;i<1024;i++)
{
if(m[i]=='\0')
{
break;
}
else
{
printf("%c",m[i]);
}
}
printf("\n");
}
void lianjie(char *m,char *n)
{
for(int i=0;i<1024;i++)
{
if(m[i]=='\0')
{
for(int j=0;j<1024;j++)
{
m[i+j]=n[j];
if(n[j]=='\0')
{
return m;
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数 用指针求字符串长度
int main()
{
char str[1024]={0};
gets(str);
char *p=str;
len(p);
}
int len(char *p)
{
for(int i=0;i<1024;i++)
{
if(p[i]=='\0')
{
printf("长度为:%d\n",i);
return 0;
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* summarys函数求数组和
int summarrays(int a[],int b[],int c);
int main()
{
int a[1024]={0};
int b[1024]={0};
int c=0;
int d=0;
int e;
for(int i=0;i<1024;i++)
{
printf("请输入第一个数组第%d个值:",i+1);
scanf("%d",&a[i]);
if(a[i]==0)
{
c=i;
break;
}
}
for(int i=0;i<1024;i++)
{
printf("请输入第二个数组第%d个值:",i+1);
scanf("%d",&b[i]);
if(b[i]==0)
{
d=i;
break;
}
}
e=c>d?c:d;
int *m=summarrays(a,b,e);
for(int i=0;i<e;i++)
{
printf("数组第%d项和为:",i+1);
printf("%d\n",m[i]);
}
}
int summarrays(int a[],int b[],int c)
{
for(int i=0;i<c;i++)
{
a[i]=a[i]+b[i];
}
return a;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求最大公约数与最小公倍数
void yueshu(int a,int b);
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
yueshu(a,b);
}
void yueshu(int a,int b)
{
for(int i=a-1;i>1;i--)
{
if(a%i==0)
{
if(b%i==0)
{
printf("最大公约数为:%d\n",i);
printf("最小公倍数为:%d\n",a*b/i);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数输入不多于5位的正整数
void weishu(int a);
int main()
{
int a;
printf("请输入一个不多于5位的正整数:");
scanf("%d",&a);
weishu(a);
return 0;
}
void weishu(int a)
{
if(a/1000>0)
{
printf("它是4位数\n");
printf("千位数字为:%d\n",a/1000);
printf("百位数字为:%d\n",a%1000/100);
printf("十位数字为:%d\n",a%1000%100/10);
printf("个位数字为:%d\n",a%1000%100%10);
}
else if(a/100>0)
{
printf("它是3位数\n");
printf("百位数字为:%d\n",a%1000/100);
printf("十位数字为:%d\n",a%1000%100/10);
printf("个位数字为:%d\n",a%1000%100%10);
}
else if(a/10>0)
{
printf("它是2位数\n");
printf("十位数字为:%d\n",a%1000%100/10);
printf("个位数字为:%d\n",a%1000%100%10);
}
else if(a/1>0)
{
printf("它是1位数\n");
printf("个位数字为:%d\n",a%1000%100%10);
}
else
{
printf("错误\n");
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数逆序输出
char nixu(char str[],int a);
int main()
{
char str[1024];
printf("请输入字符串:");
gets(str);
int a=strlen(str);
nixu(str,a);
for(int i=0;i<5;i++)
{
printf("%c",str[i]);
}
}
char nixu(char str[],int a)
{
char temp;
for(int i=0;i<=a/2;i++)
{
temp=str[i];
str[i]=str[a-1-i];
str[a-1-i]=temp;
}
return str;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数小球下落经历多少米
float way(float high,int n);
int main()
{
float high=100;
int n;
printf("请输入落地次数:");
scanf("%d",&n);
float w=way(high,n);
printf("第%d次落地时,共经过了%.2f米。\n",n,w);
}
float way(float high,int n)
{
float sum=0;
float way=0;
for(int i=0;i<n;i++)
{
sum+=high+way;
high=high/2;
way=high;
}
return sum;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求本金之和
float sum(float a,int b,float c);
int main()
{
float r=0.0225;
float x;
int n;
printf("其输入存款金额:");
scanf("%f",&x);
printf("请输入存款年限:");
scanf("%d",&n);
printf("本金之和为:%f\n",sum(x,n,r));
}
float sum(float a,int b,float c)
{
for(int i=1;i<=b;i++)
{
a=a*(1+c);
}
return a;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数截取字符串
void cut(char str[],int m,int n)
{
for(int i=m-1;i<=n-1;i++)
{
printf("%c",str[i]);
}
printf("\n");
}
int main()
{
char str[1024];
int m,n;
printf("请输入字符串:");
gets(str);
printf("请输入起始和结束位:");
scanf("%d %d",&m,&n);
cut(str,m,n);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求1/n的和
float sum(int n)
{
float sum=0;
for(float i=1;i<=n;i++)
{
sum+=1/i;
}
return sum;
}
int main()
{
int n;
printf("请输入要计算的项数:");
scanf("%d",&n);
float m;
m=sum(n);
printf("和为:%f\n",m);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 更改指定字符
void change(char a[],char b)
{
for(int i=0;i<1024;i++)
{
if(a[i]=='a')
{
a[i]=b;
printf("%c",a[i]);
}
else if(a[i]=='\0')
{
break;
}
else
{
printf("%c",a[i]);
}
}
printf("\n");
}
int main()
{
char a[1024];
char b;
printf("请输入字符串:");
gets(a);
printf("将a更改为:");
scanf("%c",&b);
change(a,b);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数判断闰年
void run(int a)
{
if(a%4==0&&a%100!=0)
{
printf("是闰年\n");
}
else if(a%400==0)
{
printf("是闰年\n");
}
else
{
printf("不是闰年");
}
}
int main()
{
int a;
scanf("%d",&a);
run(a);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数计算平均值
void avg(float a,int b)
{
printf("%f\n",a/b);
}
int main()
{
float a[5];
float sum=0;
int b;
for(int i=0;i<5;i++)
{
printf("请输入第一个数:");
scanf("%f",&a[i]);
sum+=a[i];
}
b=sizeof(a)/sizeof(float);
avg(sum,b);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求和
void sum(int a,int b)
{
int sum=0;
for(a;a<=b;a++)
{
sum+=a;
}
printf("%d\n",sum);
}
int main()
{
int m,n;
printf("请输入最小数:");
scanf("%d",&m);
printf("请输入最大数:");
scanf("%d",&n);
sum(m,n);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 符号函数
void sign(int x)
{
if(x>0)
{
printf("1\n");
}
else if(x<0)
{
printf("-1\n");
}
else
{
printf("0");
}
}
int main()
{
int a;
scanf("%d",&a);
sign(a);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数比大小
void Max(int a,int b);
int main()
{
int a,b;
scanf("%d %d",&a,&b);
Max(a,b);
}
void Max(int a,int b)
{
printf("%d\n",a>b?a:b);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数计算数字空格大小写数量
char a[3][80];
char (*p)[80]=a;
for(int i=0;i<3;i++)
{
gets(p+i);
}
int i,j;
int x,y,z,v;
x=y=z=v=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<80;j++)
{
if(*(*(p+i)+j)=='\0')
{
break;
}
else if(*(*(p+i)+j)>='A'&&*(*(p+i)+j)<='Z')
{
x++;
}
else if(*(*(p+i)+j)>='a'&&*(*(p+i)+j)<='z')
{
y++;
}
else if(*(*(p+i)+j)>='0'&&*(*(p+i)+j)<='9')
{
z++;
}
else
{
v++;
}
}
}
printf("大写:%d\n",x);
printf("小写:%d\n",y);
printf("数字:%d\n",z);
printf("其他:%d\n",v);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 指针输出元素
int a[10];
int *p=a;
for(int i=0;i<10;i++)
{
scanf("%d",p+i);
}
for(int i=0;i<10;i++)
{
printf("%d\t",*(p+i));
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 统计单词数量
char m[1024];
char n[1024];
int a=0,b,c;
printf("请输入一行字符串:");
gets(m);
for(int i=0;i<1024;i++)
{
if(m[i]==' ')
{
a++;
}
else if(m[i]=='\0')
{
a++;
break;
}
}
printf("单词数量为:%d\n",a);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 二维数组打印星号
int n;
int a,b,c=0;
printf("请输入要打印的行数:");
scanf("%d",&n);
b=n-1;
for(int i=0;i<n;i++)
{
//打印空格
for(int a=0;a<b;a++)
{
printf(" ");
}
//打印“*”
for(int j=0;j<2*i+1;j++)
{
printf("*");
c++;
if(c==2*i+1)
{
break;
}
}
b=b-1;
c=0;
printf("\n");
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 不使用strlen,求长度、复制、比较、连接
char m[1024]="abcdef";
//字符串长度
int lenm=0;
for(int i=0;m[i]!='\0';i++)
{
lenm++;
}
printf("%d\n",lenm);
//字符串复制 strcpy(x,y)复制y到字符串x
char n[1024]="qwe";
int lenn=0;
for(int i=0;n[i]!='\0';i++)
{
lenn++;
}
for(int j=0;j<lenn;j++)
{
m[j]=n[j];
}
m[lenn]='\0';
printf("%s\n",m);
//字符串比较 strcmp(x,y)——如果x,y相同则返回0,X<Y返回小于0,X>Y返回大于0
int num=lenm>lenn?lenm:lenn;
int i;
for(i=0;i<num;i++)
{
if(m[i]-n[i]!=0)
{
printf("不相等\n");
break;
}
}
if(i==num)
{
printf("相等\n");
}
//字符串拼接 strcat(源字符串,目的字符串)
int size=sizeof(m);
if(sizeof(m)>(lenn+lenm))
{
for(int i=0;i<lenn;i++)
{
m[lenm+i]=n[i];
}
m[lenn+lenm]='\0';
printf("%s\n",m);
}
else
{
printf("空间不足");
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 统计文章中个字符的数量
char m[3][80];
int a,b,c,d;
a=b=c=d=0;
//输入字符串
for(int i=0;i<3;i++)
{
printf("请输入第%d行的文字:",i+1);
gets(m[i]);
}
//判断字符个数
for(int i=0;i<3;i++)
{
for(int j=0;j<80;j++)
{
if(m[i][j]=='\0')
break;
if(m[i][j]>='A'&&m[i][j]<='Z')
{
a++;
}
else if(m[i][j]>='a'&&m[i][j]<='z')
{
b++;
}
else if(m[i][j]>='0'&&m[i][j]<='9')
{
c++;
}
else
{
d++;
}
}
}
printf("英文大写字母的个数为:%d\n",a);
printf("英文小写字母的个数为:%d\n",b);
printf("数字的个数为:%d\n",c);
printf("空格及其他字符的个数为:%d\n",d);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 判断是否是回文
char m[1024];
char n[1024];
printf("请输入一个字符串");
scanf("%s",m);
int a=strlen(m);
for(int i=0;i<a;i++)
{
n[a-1-i]=m[i];
}
int b=strcmp(m,n);
if(b==0)
{
printf("是回文\n");
}
else
{
printf("不是回文\n");
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 统计字母空格数字和其他字符个数
char m[1024];
int a,b=0,c=0,d=0,e=0;
printf("请输入一行字符:");
gets(m);
a=strlen(m);
for(int i=0;i<a;i++)
{
//大写字母个数
if(m[i]>='A'&&m[i]<='Z')
{
b++;
}
//小写字母个数
else if(m[i]>='a'&&m[i]<='z')
{
c++;
}
//数字个数
else if(m[i]>='0'&&m[i]<='9')
{
d++;
}
//空格及其他字符个数
else
{
e++;
}
}
printf("字符串为:");
for(int i=0;i<a;i++)
{
printf("%c\t",m[i]);
}
printf("大写字母个数为:%d\n",b);
printf("小写字母个数为:%d\n",c);
printf("数字个数为:%d\n",d);
printf("空格及其他个数为:%d\n",e);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 大写转小写
char m[1024];
int a,b=0,c;
printf("请输入一行字符:");
scanf("%s",m);
a=strlen(m);
for(int i=0;i<a;i++)
{
if(m[i]>='A'&&m[i]<='Z')
{
b++;
m[i]=m[i]+32;
}
}
printf("%d\n",b);
for(int i=0;i<a;i++)
{
printf("%c\t",m[i]);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 设置密码
char m[1024];
char n[1024];
int a,b=1,c;
printf("===========================\n");
printf("请设置密码:");
scanf("%s",m);
printf("===========================\n");
printf("请输入密码:");
scanf("%s",n);
a=strcmp(m,n);
while(a!=0)
{
if(b==3)
{
printf("错误次数过多,已退出\n");
printf("===========================\n");
break;
}
printf("密码错误,请重新输入:");
scanf("%s",n);
getchar();
a=strcmp(m,n);
b++;
}
if(a==0)
{
printf("密码正确\n");
printf("===========================\n");
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 密码翻译
int m;
int i;
char n[1024];
//输入一行字符
printf("请输入字符并以“!”结束\n");
for(i=0;i>=0;i++)
{
printf("请输入第%d字符:",i+1);
scanf("%c",&n[i]);
if(n[i]=='!')
{
break;
}
getchar();
}
m=i+1;
//打印输入的的字符
printf("==================\n");
printf("输入的字符为:\n");
for(int i=0;i<m;i++)
{
printf("第%d字符:为%c\n",i+1,n[i]);
}
//字符变换
for(int i=0;i<m;i++)
{
if(n[i]<'Z'&&n[i]>='A')
{
n[i]=n[i]+1;
}
else if(n[i]=='Z')
{
n[i]='A';
}
}
//打印变换后的字符
printf("==================\n");
printf("变换后的字符为:\n");
for(int i=0;i<m;i++)
{
if(n[i]<'Z'&&n[i]>='A')
{
}
printf("第%d字符:为%c\n",i+1,n[i]);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 杨辉三角
int n;
printf("请输入要打印的杨辉三角行数:");
scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;i++)
{
printf("=======");
}
printf("\n");
//给函数赋值
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j||j==0)
{
a[i][j]=1;
}
else if(j>0&&j<i)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
//打印杨辉三角
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(j<=i)
{
printf("%d\t",a[i][j]);
}
}
printf("\n");
}
for(int i=0;i<n;i++)
{
printf("=======");
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 3个学生4门成绩
int a[3][4];
int c=0;
//录入成绩
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("请输入第%d位学生的第%d门成绩;",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
//打印成绩表
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("%d\t",a[i][j]);
c++;
if(c%4==0)
{
printf("\n");
}
}
}
//每位同学的最高成绩
int temp;
temp=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if(temp<a[i][j])
{
temp=a[i][j];
}
}
printf("第%d位同学的最高成绩为:%d\n",i+1,temp);
temp=0;
}
//每位同学的总成绩
temp=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
temp+=a[i][j];
}
printf("第%d位同学的总成绩为:%d\n",i+1,temp);
temp=0;
}
int sum=0;
for(int j=0;j<4;j++)
{
for(int i=0;i<3;i++)
{
temp+=a[i][j];
}
printf("第%d门课程的平均成绩为:%d\n",j+1,temp/3);
sum+=temp/3;
temp=0;
}
printf("4门课程的总平均成绩为:%d\n",sum/4);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 行列转换
int a[3][3];
int c=0;
//给数组赋值
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("请输入%d行%d列值:",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
//赋值后的数组
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("%d\t",a[i][j]);
c++;
if(c%3==0)
{
printf("\n");
}
}
}
//行列转换
int b[3][3];
for(int i=0;i<3;i++)
{
for(int j=0;j<=3;j++)
{
b[i][j]=a[j][i];
}
}
printf("行列转换后为:\n");
c=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("%d\t",b[i][j]);
c++;
if(c%3==0)
{
printf("\n");
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 对角线之和
int x,sum1=0,sum2=0,sum;
printf("请输入一个奇数:");
scanf("%d",&x);
int y=x;
int a[x][x];
for(int i=0;i<x;i++)
{
for(int j=0;j<x;j++)
{
printf("请输入%d行%d列的数:",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<y;y--)
{
sum1+=a[i][i];
sum2+=a[y-1-i][i];
}
sum=sum1+sum2-a[x/2+1][x/2+1];
printf("对角线元素之和为:%d\n",sum);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 3*4矩阵中最大值及行列号
int a[3][4];
int temp,x,y;
//键盘输入三行四列数组值
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("请输入%d行%d列的数:",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
//打印数组值
printf("输入的数组为:");
for (int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
printf("%d ",a[i][j]);
}
}
printf("\n");
//找出最大值
temp=a[0][0];
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if (temp<a[i][j])
{
temp=a[i][j];
x=i;
y=j;
}
}
}
printf("最大值为:a[%d][%d]=%d\n",x,y,temp);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 加入新数组排序
int sum=0,temp,n=0;
printf("请输入数组内个数:");
scanf("%d",&n);
//键盘输入10个数
int a[n];
int b[n+1];
for(int i=0;i<n;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
//打印数组
printf("这个数组为:");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
//冒泡排序
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//打印排序后的数组
printf("排序后的数组为:");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
//输入一个数后的数组
printf("请输入一个新的数:");
scanf("%d",&b[0]);
for(int i=1;i<n+1;i++)
{
b[i]=a[i-1];
}
//将新数组排序
for(int i=0;i<=n;i++)
{
for(int j=0;j<n-i;j++)
{
if(b[j]>b[j+1])
{
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
//将新数组输出
for(int i=0;i<=n;i++)
{
printf("%d ",b[i]);
}
printf("\n");
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 十进制转化二进制
int i,j=1;
int b,c;
int x,y,z;
int m,n;
printf("请输入一个十进制数:");
scanf("%d",&i);
//计算数组大小
m=i;
while(m>1)
{
m=m/2;
j++;
}
//将余数放到数组中
int a[j];
n=i;
c=j;
while(n>=1)
{
b=n%2;
n=n/2;
a[j-1]=b;
j--;
}
//打印数组
printf("二进制数为:");
for(int i=0;i<c;i++)
{
printf("%d",a[i]);
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 斐波那契数列
int a,b=1,c=0;
int n[30]={1};
int i=0;
for(int m=1;m<30;m++)
{
a=b+c;
c=b;
b=a;
n[m]=a;
}
for(int m=0;m<30;m++)
{
printf("%d\t",n[m]);
i++;
if(i%5==0)
{
printf("\n");
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 数组排序求和求极值
int sum=0,temp,n=0;
printf("请输入数组内个数:");
scanf("%d",&n);
//键盘输入10个数
int a[n];
for(int i=0;i<n;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
//打印数组
printf("这个数组为:");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
//求和
for(int i=0;i<n;i++)
{
sum+=a[i];
}
printf("这个数组的和为:%d\n",sum);
//逆序重新存放
int b[n];
printf("逆序后的数组为:");
for(int i=0;i<n;i++)
{
b[i]=a[n-1-i];
printf("%d ",b[i]);
}
printf("\n");
//平均值
printf("这个数组的平均值为:%d\n",sum/n);
//冒泡排序
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//打印排序后的数组
printf("排序后的数组为:");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
//最大最小值
printf("该数组的最大值为:%d\n",a[n-1]);
printf("该数组的最小值为:%d\n",a[0]);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 比赛对手
int x=88,y=89,z=90;
int a,b,c;
for(a=88;a<=90;a++)
{
if(a!=x)
{
for(c=88;c<=90;c++)
{
if(c!=x&&c!=z&&c!=a)
{
b=x+y+z-a-c;
printf("A的比赛对手为:%c\nB的比赛对手为:%c\nC的比赛对手为:%c",a,b,c);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 猴吃桃
int x,y,z;
int i,j=1;
for(i=1;i<10;i++)
{
j=(j+1)*2;
}
printf("%d\t",j);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 分解质因数
int x,y;
int a,b,c=0,d;
printf("请输入一个正整数:");
scanf("%d",&x);
printf("将%d因式分解后得到的数为:",x);
a=x;
for(x;x>1;x--)
{
for(y=x-1;y>=1;y--)
{
if(x%y==0&&y>=2)
{
break;
}
else if(y<2)
{
if(a%x==0)
{
b=a;
printf("%d\t",x);
while(b%x==0)
{
b=b/x;
c++;
}
for(c;c>1;c--)
{
printf("%d\t",x);
}
c=0;
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 求Sn
int a,n,sn=0;
int x,y=0,z;
printf("请输入一个10以内的数字:");
scanf("%d",&a);
printf("请输入该数字的位数:");
scanf("%d",&n);
sn=x=y=a;
printf("Sn的和为:%d",a);
for(n;n>1;n--)
{
x*=10;
// printf("%d\t",x);
y+=x;
printf("+%d",y);
sn+=y;
// printf("%d\n",sn);
}
printf("=%d\n",sn);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 数列20项和
float x,y,z;
float a,b,c=0;
x=1;
y=2;
for(z=1;z<=20;z++)
{
a=y/x;
b=y;
y=x+y;
x=b;
c=c+a;
printf("%f\t",a);
printf("\n%f\t",c);
}
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 完全数
int x,y;
int a,b,c;
for(x=10000;x>1;x--)
{
a=0;
for(y=x-1;y>=1;y--)
{
if(x%y==0)
{
//printf("%d\t%d\n",x,y);
a+=y;
}
}
if(x==a)
{
printf("\t%d\n",x);
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 本利之和
float x,y=1;
float r=0.0225;
int n;
printf("请输入存款金额:");
scanf("%f",&x);
printf("请输入存款年限:");
scanf("%d",&n);
for(n;n>0;n--)
{
y=(1+r)*y;
}
printf("本利之和为:%f",y*x);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 人民币兑换
int x,y,z;
int a,b;
for(x=1;x<20;x++)
{
for(y=1;y<50;y++)
{
for(z=1;z<100;z++)
{
a=5*x+2*y+z;
b=x+y+z;
if(a==100&&b==50)
{
printf("5分的数量:%d\t2分的数量:%d\t1分的数量:%d\n",x,y,z);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 素数
int x,y,z;
int a=100,b;
for(a;a<=200;a++)
{
for(b=a-1;b>0;b--)
{
if(a%b==0&&b>=2)
{
break;
}
else if(b<2)
{
printf("%d\n",a);
}
}
}
int x;
int a=100,b;
for(a;a<=200;a++)
{
for(b=a-1;b>0;b--)
{
if(a%b==0&&b>=2)
{
x=0;
break;
}
else
{
x=1;
}
}
if(x)
{
printf("%d\t",a);
}
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 水仙花数
int x,y,z;
int a,b,c;
for(x=100;x<=999;x++)
{
a=x/100;
b=x%100/10;
c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf("%d\n",x);
}
#include"stdio.h"
#include"math.h"
int main()
{
int x,y,z;
int a,b,c;
for(x=100;x<=999;x++)
{
a=x/100;
b=x%100/10;
c=x%10;
y=pow(a,3)+pow(b,3)+pow(c,3);
if(x==y)
printf("%d\n",x);
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 三位相乘求和
int x,y=0;
for(x=2;x<=100;x=x+2)
{
y+=(x-1)*x*(x+1);
}
printf("%d\n",y);
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 阶乘和
int i,a,b=1,c=0;
for(i=1;i<=10;i++)
{
a=i;
for(a;a>1;a--)
{
b=b*a;
}
c+=b;
b=1;
}
printf("%d\n",c);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 输出最大值
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("\n%d is biggest",(c>(a>b)?a:b)?c:(a>b)?a:b);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 一年多少秒
printf("%d\n",60*60*24*365);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 周长 面积
int x,y;
scanf("%d%d",&x,&y);
int z;
z=2*(x+y);
printf("周长:%d\n",z);
printf("面积:%d\n",x*y);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* A变a
char ch='A';
printf("%c\n",ch+32);
return 0;
/* 平均数
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
printf("%.1lf\n",(a+b+c)/3);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 弧度
float a,b,c,d;
scanf("%f",&a);
b=a*57.3;
c=(b-(int)b)*60;
d=(c-(int)c)*60;
printf("%d弧度=%d角度%d弧分%d弧秒\n",a,(int)b,(int)c,(int)d);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 字符
char a;
scanf("%c",&a);
printf("前导字符:%c\n该字符:%c\n后续字符:%c",a-1,a,a+1);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 转换
int a,b;
scanf("%d%d",&a,&b);
printf("转换后:\na=%d\nb=%d",a^b^a,a^b^b);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 17整除
int a=100;
while(a%17!=0)
a--;
printf("%d\n",a);
return 0;
int a;
for(a=100;a%17!=0;a--);
printf("%d\n",a);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 闰年
int a;
scanf("%d",&a);
if(a/4==0)
printf("是闰年");
else
printf("不是闰年");
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 不被3整除
int x,y=0;
for(x=200;x<=400;x++)
{
if(x%3!=0)
y+=x;
}
printf("%d",y);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 分母求和
float x,y,a=0,b=0,z;
for(x=2;x<=100;x=x+2)
{
a=a+1/x;
}
for(y=1;y<=100;y=y+2)
{
b=b+1/y;
}
z=b-a;
printf("%f\n",z);
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 三位数
int a,b,c;
int x,y,sum;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=1;c<10;c++)
{
x=100*a+10*b+c;
y=100*c+10*b+a;
sum=x+y;
if(sum==1333)
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
}
}
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 个位为7
int x;
for(x=200;x<=400;x++)
{
if(x%3==0&&x%100%10==7)
printf("%d\n",x);
}
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 跳出循环
int x,y;
for(x=0;x<=10;x++)
{
printf("%d",x);
if(x==4)
break;
}
for(y=0;y<=10;y++)
{
if(y>4)
{
continue;
}
else
{
printf("\t%d",y);
}
}
return 0;
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/*输出y值
int x,y;
scanf("%d",&x);
if(x<1)
{
printf("%d\n",x);
}
else if(1<=x<10)
{
printf("%d\n",2*x-1);
}
else
{
printf("%d",3*x-11);
}
return 0;
标签:int,scanf,float,C语言,char,printf,习题,输入
From: https://www.cnblogs.com/Ron01/p/17489326.html