大连理工大学C语言知识学习夏浩老师第四次上机作业任务文档格式.docx
《大连理工大学C语言知识学习夏浩老师第四次上机作业任务文档格式.docx》由会员分享,可在线阅读,更多相关《大连理工大学C语言知识学习夏浩老师第四次上机作业任务文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
![大连理工大学C语言知识学习夏浩老师第四次上机作业任务文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/9/39e695b0-507b-4874-b5bb-5445d5fad9d8/39e695b0-507b-4874-b5bb-5445d5fad9d81.gif)
,&
a[i]);
b[i]=a[i];
}
for(j=0;
j<
9;
j++)
9-j;
if(a[i]<
a[i+1])
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
k=j;
for(i=j+1;
if(b[k]<
b[i])k=i;
if(k!
=j)
t=b[j];
b[j]=b[k];
b[k]=t;
沉底排序后的数列:
printf("
%2d"
a[i]);
\n"
冒泡排序后的数列:
b[i]);
return0;
截图:
2.题目描述:
统计:
从键盘输入10个学生的数学(MT)、英语(EN)和物理(PH)成绩,并按照如下统计形式输出,包括学生学号(NO)、各科成绩、总成绩(SUM)、平均分(AVE)及是否每科都超过90分(‘Yor‘N'
)
NO
MT
EN
PH
SUM
AVE
>
90
1
97
87
92
276
N
2
91
273
Y
3
81
82
253
84
题目分析:
在二维数组输入10个人三科成绩,在第一层循环计算总数和平均数,并判断平均数是否大于90.
开始
按分析进行相应运算
#definenum10
intsum(intgrade[][3],inti);
intmain()
intgrade[num][3];
inti,j;
ints=0,a=0;
for(i=0;
i<
num;
for(j=0;
j<
3;
scanf("
grade[i][j]);
90\n"
NOMTENPHSUMAVE
fo「(一H0--AnumT+)p「imf(=%2d=+■<
=?
fogH0jA3j++)
宀
p「imf(=%3d=g「ade日曰)-
s+Hgrade冒p「imf(=%4d=sxaHSGOO八p「imf(=%3d=¥
if(aVH90)p「inff(=Y一rr)八e_sep「Hf(=N云)「efum0八刑鋼理函-
9bgS9^2onU11<
huf
10
◎MIM
》jlhi
HlUMHIttUVI>
^W
#£
_v
wH9
i
&
_vH
01230
M-R_HHI创¥
2VtJVUIY
3^1W¥
¥
7491V
SGI8?
N
27®
9^V
nnntiInnn
3.题目描述:
统计大写辅音字母个数:
某文本共有3行,每行不超过80个字符,试编写一个程序统计该文本中大写辅音字母的个数(文本由键盘输入)。
例:
输入HELLO
IT12
uieiaba
输出Thereare4capitalconsonantlettersinthispaper.
定义三个字符串数组,一个字符串数组输入后马上判断字符是否为大写字母同时判断不为AEIOU五个字符,符合则count+1,直到三个数组输入完毕,输出count值。
流程图:
输出count
代码:
main()
intcount=O,i,r;
charch,str[81];
Input3strings:
for(r=1;
r<
=3;
r++)
i=0;
while((ch=getchar())!
='
\n'
)str[i++]=ch;
str[i]='
\0'
;
str[i]!
if(str[i]>
A'
str[i]<
Z'
)if(str[i]!
E'
=T&
O'
U'
)count++;
Thereare%dcapitalconsonantlettersinthisletter.\n"
count);
return0;
屏幕截图:
Input3strings:
HFLLO
WORLD*
1234LG
Tlwreare7capitalconsonantlettersinthisletter.Pt'
essansrkeytocontinue^
4•题目描述:
字符串连接:
试编写一个程序连接两个字符串(不使用库函数
strcat())。
输入
第一个字符串:
:
Welcometo
第二个字符串:
China
输出
WelcometoChina
分别输入两个字符串数组,将第二个数组中的每个元素变为第一个数
组最后一个元素之后依次的元素,输出第一个字符串数组
stdlib.h>
string.h>
voidmain()
inti=0,j=0;
charstr1[100],str2[50];
第一个字符串:
gets(str1);
第二个字符串:
gets(str2);
str1[i]!
i++);
str2[j]!
j++)str1[i++]=str2[j];
str1[i]='
%s\n"
str1);
5.矩阵运算:
读入1个正整数n(1wnW6),再读入n阶方阵,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入4
2341
5611
7181
1111
输出sum=35
输入一个二维数组,用二重循环将所有数相加再加上左上角、右上角、右下角的
三个数再减去副对角线、最后一列和最后一行的和。
输出值
intsum=0,sum1=0,sum2=0,sum3=0,n,i,j;
inta[6][6];
Pleaseinputn:
scanf("
n);
n;
a[i][j]);
sum+=a[i][j];
if(i+j==n-1)sum1+=a[i][j];
sum2+=a[i][n-1];
sum3+=a[n-1][j];
sum=sum+a[0][n-1]+a[n-1][0]+a[n-1][n-1]-sum1-sum2-sum3;
\nsum=%ld\n"
sum);
截屏:
附加题:
12个小朋友手拉手站成一个圆圈,从第一个小朋友开始报数,报到6的那个小朋友退出到圈外,然后他的下一位重新报“1”。
这样继续下去,最后只剩下一个小朋友,他
原来站在什么位置上呢?
并把输出小朋友退出圈外的顺序
#include<
inti,j,n=0,sum,l,A[12]={1,1,1,1,1,1,1,1,1,1,1,1};
Thearrayis:
12;
if(A[i]!
=0)
n++;
if(n==6)
A[i]=0;
n=0;
%d"
i+1);
if(i==11)
i=-1;
//i++后变成0,又从A[0]开始循环
sum=0;
sum+=A[j];
if(A[j]==1)
I=j+1;
if(sum==1)
break;
\nThelastoneis%d\n"
l);
TJwari'
aj,itr:
61273108591114
Th«
last;
nnrtis3
Processreturned0<
0x0>
executiontincs0*219sPressanpheytotortinu&
.