(1)编写一个程序实现如下功能:一个整型数组有 10 个元素,删除所有值为 n 的元素。
要求:
int fun(int *b,int m);
int c[10];
int i,p,a[10],n;
printf("请输入 10 个正整数:"); //此处输入数据要用空格隔开
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
printf("请输入 n");
scanf("%d",&n);
p=fun(a,n);
for(i=0;i<=p;i++)
printf("%d",c[i]);
① 主函数完成 n 的输入,数组元素输入以及删除后数组元素的输出。
② 删除功能用子函数完成。
#include
main()
{
}
fun(int *b,int m)
{
int j,k=0,q=1;
for(j=0;j<=9;j++)
{
if(*(b+j)!=m)
/*
{
}
else
while(1)
c[k]=*(b+j);
k++;
//此处比较麻烦的做法无限循环用
于判断连续多个被选数字例:1 2 3 4 5 5 6 7 8 9 若 n=5 则需要
{
else
if(*(b+j+q)!=m)
{
}
c[k]=*(b+j+q);
k++;
j=j+q;
q=0;
break;
q++;
BX0904 ALEX BX0904 ALEX
}
return k-1;
*/
}
}
———————————————————————————————————————
——
(2)编写一个程序实现如下功能:输入 10 个学生 5 门课程的成绩,分别用函数求:①
每个学生的平均分;②每门课程的平均分;③找出最高的分数所对应的学生和课程。
若输入 2 个学生的成绩,其运行结果如下图所示。
#include
main()
{
int i,j, N,C;
float a[10][6],average[5],H,sum=0.0,sum1=0.0;
for(i=0;i<=9;i++)
{
printf("input score of student %d\n",i+1);
for(j=0;j<=4;j++)
{
scanf("%f",&a[i][j]);
sum+=a[i][j];
if(H<=a[i][j])
{
H=a[i][j];
N=i;
C=j;
}
}
a[i][5]=sum/5.0;
sum=0.0;
BX0904 ALEX BX0904 ALEX
}
for(j=0;j<=4;j++)
{
for(i=0;i<=9;i++)
{
sum1+=a[i][j];
average[j]=sum1/10.0;
printf("NO. cour1
cour2
}
sum1=0.0;
}
cour3
cour4
cour5
ave");
for(i=0;i<=9;i++)
{
printf("NO.%d",i+1);
for(j=0;j<=5;j++)
printf("
%4.2f",a[i][j]);
}
printf("\n");
printf("\n");
printf("\n");
printf("average:");
for(i=0;i<=4;i++)
printf("
%4.2f",average[i]);
printf("highest:
%4.2f
NO. %d course %d ",H,N,C);
printf("\n");
}
———————————————————————————————————————
(3)编写一个程序实现如下功能:找最长的单词。设输入的英文短文不超过一行(假
设正文最后有“.”结束,以“,”或空格分隔,不出现其他符号),编程将所有单词输出,并
求其中最长单词的长度,并将该单词输出。
int i,j,m=0,n;
char a[100][100];
#include
main()
{
printf("请输入短文:\n");
for(i=0;;i++)
{
for(j=0;;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]==','||a[i][j]==' '||a[i][j]=='.')
{
if(j>=m)
BX0904 ALEX BX0904 ALEX
m=j;
n=i;
break;
{
}
}
}
if(a[i][j]=='.')
break;
}
printf("最长单词为:");
for(j=0;j<=m;j++)
printf("%c",a[n][j]);
printf("最长长度为%d",m);
}
(4)编写一个程序实现如下功能:有 8 位裁判为 1 个运动员打分,请计算并输出去掉
一个最高分和一个最低分后这个运动员的平均得分以及所评分最接近平均分的裁判员号。裁
判员号及其所打分数从键盘输入,假设裁判员号为整数,所打分数为实数。
int t,i,j,sum=0,N[8]={9,9,9,9,9,9,9,9},k=0;
float a[8],b[8],ave,c,c1;
#include
#include
main()
{
printf("请输入 8 位裁判的打分:");
for(i=0;i<=7;i++)
{
scanf("%f",&a[i]);
b[i]=a[i];//为方便寻找裁判
}
printf("\n");
for(j=0;j<=7;j++)//冒泡排序
for(i=0;i<=5;i++)//求均值
ave=sum/6.0;
c=abs(ave-b[0]);
for(i=0;i<=7-j;j++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
sum+=a[i+1];
BX0904 ALEX BX0904 ALEX
for(i=0;i<=7;i++)//找最接近的裁判号 此处比较麻烦因为考虑到裁判打分可能有
c=c1;
N[k]=i;
N[k]=i;
k++;
",N[i]+1);
相同的情况
{
}
c1=abs(ave-b[i]);
if(c1
#include
main()
{
int i,s;
char a[80]={0},b[80]={0},c[40]={0};
printf("请输入字符串\n");
gets(a);
s=strlen(a);
BX0904 ALEX BX0904 ALEX
b[i]=a[2*i];
c[i-1]=a[2*i-1];
puts(a);
for(i=0;2*i<=s;i++)
for(i=1;2*i-1<=s;i++)
strcat(b,c);
puts(b);
}
—————————————————————————————————————
(6)功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):
1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1≤n≤50);
2)计算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将≥ave的成绩归为A
档,将<ave的成绩归为B档;
3)分别统计A、B两档的人数,计算在总人数中的比率;
4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值;
运行示例:
输入:9 55.5 99.5 50.0 90.0 88 59.5 48 60 78.0
输出:
Sum=628.5, Ave=69.8
A: 4,44.4% B: 5,55.6%
MinA: 78.0,+8.2 MaxB: 60.0,-9.8
说明:输入的第 1 个数表示学生人数(n=9),接着输入的 9 个成绩中,累加和为 628.5(所
有小数均保留一位小数输出),平均分为 69.8 分;平均分以上(A 档)有 4 人,占 44.4%,
平均分以下(B 档)有 5 人,占 55.6%;A 档的最低分为 78 分,超出平均分 8.2 分,B 档的
最高分为 60 分,距离平均分还有 9.8 分的差距。
#include
main()
{
float a[50],ave,sum=0.0,max=100,min=100;
int An=0,i,n;
printf("输入:");
scanf("%d",&n);
for(i=0;i=ave)
{ An++;
scanf("%f",&a[i]);
sum=sum+a[i];
if(a[i]-ave
max=a[i];
}
else
{
if(ave-a[i]
#include
main()
{ int n,i,j=0;
char a,r[100]={0},s[100]={0};
printf("请输入字符串\n");
gets(s);
printf("请输入要删除的字符:");
scanf("%c",&a);
n=strlen(s);
for(i=0;i
}
(8)编写一个程序实现如下功能:从字符串中删除指定的字符。同一字母的大、小写
按不同字符处理。
例:若程序执行时,输入字符串为:Shanghai Dianji University,从键盘上输入字
符:s,则输出后变为:Shanghai Dianji Univerity,如果输入的字符串不存在,则字符串
照原样输出。
#include
#include
main()
{ int n,i,j=0;
char a,r[100]={0},s[100]={0};
printf("请输入字符串\n");
gets(s);
printf("请输入要删除的字符:");
scanf("%c",&a);
n=strlen(s);
for(i=0;i
#include
void fun(char *a,int k,int n);
int l;
main()
{
printf("请输入字符串:");
int p=0,q=0;
char s[100];
BX0904 ALEX BX0904 ALEX