t=j;
{m=a[k];a[k]=a[t];a[t]=m;}
}
printf("Thesortednumbers:
\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
程序截屏:
2.
题目描述:
统计:
从键盘输入10个学生的数学(MT)、英语(EN)和物理(PH)成绩,并按照如下统计形式输出,包括学生学号(NO)、各科成绩、总成绩(SUM)、平均分(AVE)及是否每科都超过90分(‘Y’or‘N’)
题目分析:
利用二维数组,输入十个学生的成绩。
然后for循环,计算出每位同学的各科成绩、总成绩(SUM)、平均分(AVE)及是否每科都超过90分。
流程图:
程序代码:
#include
main()
{
chart;
inta[10][3]={{97,87,92},{92,91,90},{90,81,82},{88,98,95},{96,85,88},{96,93,91},{86,85,87},{89,85,98},{99,96,86},{85,95,84}};
inti,j,sum,ave;
printf("NOMTENPHSUMAVE>90\n");
printf("\n");
printf("--------------------------------------------------------------------\n");
for(j=0;j<10;j++)
{
sum=a[j][0]+a[j][1]+a[j][2];
ave=sum/3;
if(a[j][0]>90&&a[j][1]>90&&a[j][2]>90)
t='Y';
else
t='N';
printf("%d%d%d%d%d%d%c\n",j+1,a[j][0],a[j][1],a[j][2],sum,ave,t);
}
}
程序截屏:
3.
题目描述:
统计大写辅音字母个数:
某文本共有3行,每行不超过80个字符,试编写一个程序统计该文本中大写辅音字母的个数(文本由键盘输入)。
题目分析:
利用二维字符数组,输入三行文本,然后用for循环统计大写辅音字母个数。
流程图:
程序代码:
#include
main()
{
charc[3][80];
inti,j,m,n;
n=0;
scanf("%s",c[1]);
scanf("%s",c[2]);
scanf("%s",c[3]);
for(i=0;i<3;i++)
for(j=0;j<80;j++)
{if(c[i][j]>='A'&&c[i][j]<='Z')
if(c[i][j]!
='A'&&c[i][j]!
='E'&&c[i][j]!
='I'&&c[i][j]!
='O'&&c[i][j]!
='U')
m=1;
else
m=0;
else
m=0;
n=n+m;}
printf("Thereare%dcapitalconsonantlettersinthispaper.",n);
}
程序截屏:
4.
题目描述:
字符串连接:
试编写一个程序连接两个字符串(不使用库函数strcat())。
题目分析:
用一维字符数组分别定义两个字符串,通过while语句,先找到第一个字符串终止位置,再将终止后的每个元素分别复制第二个数组的元素,最后输出第一个数组即可。
流程图:
程序代码:
#include
main()
{
chara[100],c[100];
inti,j;
i=0,j=0;
gets(a);
gets(c);
while(a[i]!
='\0')
i++;
while(c[j]!
='\0')
{a[i]=c[j];
j++;
i++;}
a[i]='\0';
printf("%s\n",a);
}
程序截屏:
5.
题目描述:
矩阵运算:
读入1个正整数n(1≤n≤6),再读入n阶方阵,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
题目分析:
定义一个二维数组,先用for循环输入数组,在用for循环计算sum。
除去副对角线,即i+j!
=n-1。
流程图:
程序代码:
#include
main()
{
inta[6][6];
intn,i,j,sum;
sum=0;
scanf("%d",&n);
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;ifor(j=0;jif(i+j!
=n-1)
sum+=a[i][j];
printf("sum=%d\n",sum);
}
程序截屏:
附加题:
题目描述:
12个小朋友手拉手站成一个圆圈,从第一个小朋友开始报数,报到6的那个小朋友退出到圈外,然后他的下一位重新报“1”。
这样继续下去,最后只剩下一个小朋友,他原来站在什么位置上呢?
并把输出小朋友退出圈外的顺序。
题目分析:
定义个数组,初始时将12个元素数值赋为1,表示所有人都在圈内,这样小朋友报数就用累加数组元素的值来模拟,累加到6时,该元素代表的小朋友退到圈外,将相应元素的值改赋为0,这样再累加到该元素时和不会改变,从而模拟已出圈外的状态。
流程图:
程序代码:
#include
voidmain()
{
inta[12],c[12];
inti,j,sum;
sum=0;
for(i=0;i<12;i++)
a[i]=1;
i=0;j=0;
while(j<12)
{
sum+=a[i];
if(sum==6)
{
a[i]=0;
sum=0;
c[j]=i+1;
j++;
}
i++;
if(i>11)
i=0;
}
printf("最后一个在%d号位置\n",c[11]);
printf("小朋友退出圈外的顺序是:
\n");
for(j=0;j<12;j++)
printf("%d",c[j]);
printf("\n");
}
程序截屏:
心得体会:
这次作业中很多题都用到了循环及嵌套循环结构,题目比以往更为复杂,结构也更为复杂,因此在编程之前要仔细进行分析,要有耐心,要细心,才能成功的编出程序。
我会继续努力.