5-1 A - C语言实验——最值
#include<stdio.h>
int main()
{
int n,a[10],min,max,i,x,y,t,k;
scanf("%d",&n);
for(i=0;i<n;i++)//数组下标要从0开始,所以i=0;
{
scanf("%d",&a[i]);
}
max=a[0],min=a[0];//初始化max,min为a[0],方便比较;
for(i=1;i<n;i++)//从一开始与a[0]比较;
{
if(a[i]>max)
{
max=a[i];
x=i;
}
if(a[i]<min)
{
min=a[i];
y=i;
}
}//找最大值与最小值;
t=a[x];
a[x]=a[n-1];
a[n-1]=t;//交换;
k=a[y];
a[y]=a[0];
a[0]=k;//交换;
for(i=0;i<n;i++)
{
printf("%d ",a[i]);//顺序输出;
}
return 0;
}
5-2 B - C语言实验——整数位
#include<stdio.h>
int main()
{
int n,a[5],sum=0,i,d;
scanf("%d",&n);
d=n;//后面n会改变,所以先把n赋值给d,方便后面数组使用;
for(sum=0;n>0;sum++)
{
n=n/10;
}
printf("%d\n",sum);
n=d;//将n的值变回初始值;
for(i=0;n>0;i++)
{
a[i]=n%10;
n=n/10;
}
for(i=sum-1;i>=0;i--)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i<sum;i++)
{
printf("%d ",a[i]);
}
return 0;
}
5-3 C - 小鑫数数儿
#include<stdio.h>
int main()
{
int n,a[101],i;
while(scanf("%d",&n)!=EOF)//前面讲过的while循环;
{
int ave=0,a1=0,a2=0,a3=0,sum=0;
for(i=0; i<n; i++)
{
scanf("%d ",&a[i]);
sum=sum+a[i];
}
ave=sum/n;
for(i=0; i<n; i++)
{
if(a[i]<ave)
a1++;
if(a[i]==ave)
a2++;
if(a[i]>ave)
a3++;
}
printf("%d %d %d\n",a1,a2,a3);
}
return 0;
}
5-4 D - 区间之和
#include<stdio.h>
int main()
{
int n,a[10000],i,l,r,sum=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d ",&a[i]);
}
scanf("%d %d",&l,&r);
for(i=1; i<=n; i++)
{
if(i>=l&&i<=r)
sum=sum+a[i];
}
printf("%d",sum);
return 0;
}
5-5 E - C语言实验——分割整数
#include<stdio.h>
int main()
{
int n,a[10],i,j;
scanf("%d",&n);
for(i=0; n>0; i++)
{
a[i]=n%10;
n=n/10;
}
if(j==i)
printf("%d",a[j]);
else
{
for(j=i-1; j>=0; j--)
{
printf("%d ",a[j]);
}
}
return 0;
}
5-6 F - 众数
#include<stdio.h>
int main()
{
int n,h,a[10001],i,b=0,c=0,d;
while(scanf("%d",&n)!=EOF)
{
c=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
b=0;
for(h=i+1;h<=n;h++)
{
if(a[i]==a[h])
{
b++;
}
}
if(b>c)
{
c=b;
d=a[i];
}
}
printf("%d\n",d);
}
return 0;
}
5-7 G - 小鑫爱运动
#include<stdio.h>
int main()
{
int n,h,a[10],i,b=1;
while(scanf("%d",&n)!=EOF)
{
b=1;
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=1; i<n; i++)
{
if(a[i]<a[0])
{
b++;
}
}
printf("%d\n",b);
}
return 0;
}
5-8 H - C语言实验——数日子
#include<stdio.h>
int main()
{
int y,m,d,n,i,x=0;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d %d %d",&y,&m,&d);
switch(m)
{
case 1:
x=d;
break;
case 2:
x=d+31;
break;
case 3:
x=d+31+28;
break;
case 4:
x=d+31+28+31;
break;
case 5:
x=d+31+28+31+30;
break;
case 6:
x=d+31+28+31+30+31;
break;
case 7:
x=d+31+28+31+30+31+30;
break;
case 8:
x=d+31+28+31+30+31+30+31;
break;
case 9:
x=d+31+28+31+30+31+30+31+31;
break;
case 10:
x=d+31+28+31+30+31+30+31+31+30;
break;
case 11:
x=d+31+28+31+30+31+30+31+31+30+31;
break;
case 12:
x=d+31+28+31+30+31+30+31+31+30+31+30;
break;
}
if(((y%4==0&&y%100!=0)||(y%400==0))&&(m>2))
x=x+1;
printf("%d\n",x);
}
return 0;
}//咳咳,就是有点儿小长
5-9 I - 喵帕斯之平地摔
#include<stdio.h>
int main()
{
int n,a[10000],i;
while(scanf("%d",&n)!=EOF)
{
int d=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<n-1;i++)
{
if(a[i]>a[i-1]&&a[i]>a[i+1])
d++;
}
printf("%d\n",d);
}
return 0;
}
5-10 J - 排序
#include<stdio.h>
int main()
{
int n,a[100],i,j,t;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
scanf("%d ",&a[i]);
}
for(i=1;i<=n-1;i++)
{
for(j=i+1;j<=n;j++)//正常的顺序排序,后面会学冒泡法,快排啥的,后面遇到我会标注;
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=1;i<=n-1;i++)
{
printf("%d ",a[i]);
}
printf("%d\n",a[n]);
return 0;
}
5-11 K - 排序问题
#include<stdio.h>
int main()
{
int i,j,t;
int a[11],b[11];
for(i=0; i<10; i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0; i<9; i++)
{
printf("%d ",a[i]);
}
printf("%d\n",a[9]);
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
if(a[i]==b[j])
{
if(i!=9)
{
printf("%d ",j+1);
}
else
{
printf("%d\n",j+1);
}
break;
}
}
}
return 0;
}
5-12 L - 数列有序!
#include<stdio.h>
int main()
{
int n,m,a[10010],i,j;
while(scanf("%d %d",&n,&m)!=EOF)
{
int t;
if(m==0&n==0)
break;
else
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
a[n]=m;
for(i=0; i<n; i++)
{
for(j=i+1; j<=n; j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("%d\n",a[n]);
}
}
return 0;
}
5-13 M - 中位数
#include<stdio.h>
int main()
{
int n,i,a[1001],j,t;
double x;
while(scanf("%d",&n)!=EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
if(n%2==0)
{
x=(a[n/2]+a[n/2-1])/2.0;
}
else x=a[(n-1)/2];
printf("%.1lf\n",x);
}
return 0;
}
5-14 N - C语言实验——各位数字之和排序
#include <stdio.h>
int main()
{
int n,i,j,q,t;
while(scanf("%d",&n)!=EOF)
{
int a[n];
int sum[n];
if(n==0)
break;
else
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
sum[i]=a[i];
}
for(i=0; i<n; i++)
{
q=sum[i];
sum[i]=0;
while(q>0)
{
sum[i]+=q%10;
q/=10;
}
}
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(sum[i]>sum[j])
{
t=sum[i];
sum[i]=sum[j];
sum[j]=t;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0; i<n; i++)
{
if(i!=n-1)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
}
}
return 0;
}
5-15 O - 期末考试之排名次
#include <stdio.h>
int main()
{
int n,i;
int a[10000];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
int C,M,E,sum,j,t;
for(i=1;i<=n;i++)
{
sum=0;
scanf("%d %d %d",&C,&M,&E);
sum=C+M+E;
a[i]=sum;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n+1;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
}
return 0;
}
5-16 P - 次大和次小
#include<stdio.h>
int main()
{
int T,n,a[1001],i,j,t,k;
scanf("%d",&T);
for(k=0; k<T; k++)
{
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("%d %d\n",a[n-2],a[1]);
}
return 0;
}
5-17 Q - 冒泡排序中数据交换的次数
#include<stdio.h>
int main()
{
int T,n,a[1001],k,i,j,t;
scanf("%d",&T);
for(k=0;k<T;k++)
{
int c=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)//这就是我前面提到的冒泡排序啦,更好用,学这个!(虽然后面快排更好用......)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
c++;
}
}
}
printf("%d\n",c);
}
return 0;
}
5-18 R - 小金追呀追不上妹子
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, n, m, a[1001], t, sum;
while(scanf("%d%d", &n, &m) != EOF)
{
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for(i = 0; i < n - 1; i++)
{
for(j = 0; j < n - i - 1; j++)
{
if(a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
sum = 0;
for(i = 0; i <= m - 1; i++)
{
sum = sum + a[i];
}
printf("%d\n", sum);
}
return 0;
}
5-19 S - C语言实验——数组逆序
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,i,t,k;
int a[109];
scanf("%d",&n);
for(i = 0;i < n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(k = 0;k < m;k++)
{
t = a[n-1];
for(i = n-1;i > 0;i--)
{
a[i] = a[i-1];
}
a[i] = t;//i = 0;
}
for(i = 0;i < n;i++)
{
if(i == n-1)printf("%d\n",a[i]);
else printf("%d ",a[i]);
}
return 0;
}
5-20 T - 矩阵输出
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n, a[21], j, k, t;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for(k = 0; k <= n - 1; k++)
{
for(i = 0; i < n; i++)
{
if(i < n -1)
{
printf("%d ", a[i]);
}
else
{
printf("%d\n", a[i]);
}
}
t = a[n - 1];
for(j = n - 1; j >= 1; j--)
{
a[j] = a[j - 1];
}
a[0] = t;
}
return 0;
}
加油加油加油!!!