资源描述
1、(一维数组)输入20名学生某门课程的百分制整数成绩,统计并输出各个分数段(0~9、10~19、…、80~89、90~100)的人数。要求程序中不能用if语句、switch语句以及条件表达式,程序不考虑输入数据错误。
#include <stdio.h>
int main()
{
int c[11]={0},i,p;
for(i=0;i<5;++i)
{
scanf("%d",&p);
c[p/10]++;
}
c[9]=c[9]+c[10];
for(i=0;i<10;++i)
printf("%d0分到分%d的人数为:%d\n",i,i<9?(10*i+9):100,c[i]);
getchar(); getchar();
return 0;
}
2、(一维数组)某一大型比赛中有10名裁判同时为一名体操运动员打分,输入这10名裁判的打分,计算并输出去掉一个最高分和一个最低分后该运动员的平均得分。要求程序中不能用排序方法找出最高分和最低分。
#include<stdio.h>
int main()
{
int max,min,sum,i,score[10];
for(i=0;i<10;i++) //2 2 2 2 2 2 2 2 1 5
scanf("%d",&score[i]);
sum = max = min = score[0];
for(i=1; i<10; i++)
{
if(max<score[i]) max = score[i];
if(min>score[i]) min = score[i];
sum =sum+score[i];
}
printf("%.2f\n", (sum-min-max)/8.0);
getchar(); getchar();
return 0;
}
3、(两维数组)假定有10个候选人,他们分别用编号1~10表示,有20个人参加投票,每个投票人只能把票投给一个候选人,输入每个投票人投给某个候选人的编号,程序统计每个候选人的得票数,并按照得票数从高到低输出每个候选人的编号和得票数。
#include <stdio.h>
main()
{
int a[11][2]={0},i,j,t;
for(i=1;i<11;i++)
a[i][0]=i; /*1 1 9 9 9 2 6 2 6 3 3 4 4 5 6 6 7 8 9 10*/
for(i=0;i<20;i++)
{scanf("%d",&t);
a[t][1]++;
}
for(i=0;i<9;i++)
for(j=10;j>i+1;j--)
if(a[j][1]>a[j-1][1])
{t=a[j][0];a[j][0]=a[j-1][0];a[j-1][0]=t;
t=a[j][1];a[j][1]=a[j-1][1];a[j-1][1]=t;
}
for(i=1;i<11;i++)
printf("%d %d\n",a[i][0],a[i][1]);
getchar(); getchar();
return 0;
}
4、(两维数组)教材P.108第6-3题
#include<stdio.h>
#define N 8
int main()
{
int a[N][N]={0},i,j;
for(i=0;i<8;i++)
for(j=0;j<=i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
a[i][0]=1; a[i][i]=1;
printf("%2d ",a[i][j]);
if(i==j)
printf("\n");
}
getchar(); getchar();
return 0;
}
5、(两维数组)改写教材上的例6.15,要求实现对一个N阶方阵的原地转置。所谓“原地”就是程序中不能用两个数组。
#include<stdio.h>
#define N 3
int main()
{
int a[N][N]={0},i,j,t;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]); //1 2 3 4 5 6 7 8 9
for(i=0;i<N;i++)
for(j=0;j<=i;j++)
{ t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
getchar(); getchar();
return 0;
}
6、(字符串)从键盘上输入若干个字符串,统计出现字符串“Jobs & iPad”的个数后输出
#include<stdio.h>
#include<string.h>
#define N 3
int main()
{
char a[N][30],i,t;
char b[20]="Jobs & iPad";
for(i=0,t=0;i<N;i++)
{ gets(a[i]);
if(strcmp(a[i],b)==0)
t++;
}
printf("%d",t);
getchar(); getchar();
return 0;
}
7、(字符串)从键盘上输入一个字符串放入str和一个字符放入ch,删除字符串str中的字符ch(可能有多个)后输出。程序中若只用一个字符数组str为好!
#include<stdio.h>
int main()
{
char str[40]={},ch,i;
printf("请输入一个字符串:");
gets(str);
printf("请输入一个字符:");
ch=getchar();
for(i=0;i<40&&str[i]!='\0';i++)
{
if(str[i]==ch) continue;
printf("%c",str[i]);
}
getchar(); getchar();getchar(); getchar();
return 0;
}
4
展开阅读全文