C语言实验求助

C语言实验求助,第1张

#include <stdio.h>

void main()

{

float score[10],max,min,sum=0

int i

for(i=0i<10i++)

{

printf("请输入第%d个评委的分数",i+1)

scanf("%g",&score[i])

sum+=score[i]

}

max = score[0]

min = score[0]

for(i=0i<10i++)

{

if(max<score[i])

{

max=score[i]

}

if(min>score[i])

{

min = score[i]

}

}

sum = (sum-min-max)/8

printf("平均分是:%g",sum)

system("pause")

}

#include <stdio.h>

void main()

{

int shu[5][5],i,j,sum=0,sum1=0

for(i=0i<5i++)

{

for(j=0j<5j++)

{

printf("shu[%d][%d]",i,j)

scanf("%d",&shu[i][j])

}

}

for(i=0i<5i++)

{

for(j=0j<5j++)

{

if(i==j)

{

sum+=shu[i][j]

}

if(i+j==4)

{

sum1+=shu[i][j]

}

}

}

printf("对角元素之和是sum=%d\nsum1=%d",sum,sum1)

system("pause")

}

#include <stdio.h>

void main()

{

int i,score[15],nums[15],count=0

int shu[5]

for(i=0i<5i++)

{

shu[i]=0

}

for(i=0i<15i++)

{

printf("请输入第%d个同学的学号:",i+1)

scanf("%d",&nums[i])

printf("请输入第%d个同学的成绩:",i+1)

scanf("%d",&score[i])

while(score[i]>100&&score[i]<0)

{

printf("你输入的成绩有误,请重新输入")

printf("请输入第%d个同学的成绩:",i+1)

scanf("%d",&score[i])

}

}

for(i=0i<15i++)

{

if(score[i]<60)

{

count++

}

else if(score[i]>=60&&score[i]<70)

{

shu[0]++

}

else if(score[i]>=70&&score[i]<80)

{

shu[1]++

}

else if(score[i]>=80&&score[i]<89)

{

shu[2]++

}

else if(score[2]>=90&&score[i]<100)

{

shu[3]++

}

else if(score[i]==100)

{

shu[4]++

}

}

printf("\n60分以下的同学有%d人",count)

printf("\n60分--69的同学有%d人",shu[0])

printf("\n70分79的同学有%d人",shu[1])

printf("\n80分89的同学有%d人",shu[2])

printf("\n90分99的同学有%d人",shu[3])

printf("\n100分的同学有%d人",shu[4])

system("pause")

}

实验5 编写、调试具有多个段的程序

-----------------------------------------

(1)

1.保持不变

2.<考虑不同机子环境不同,答案无法统一>

3.X-2,X-1

(2)

1.保持不变

2.<考虑不同机子环境不同,答案无法统一>

3.X-2,X-1

4.(N/16+1)*16 [说明:N/16只取整数部分]

(3)

1.保持不变

2.<考虑不同机子环境不同,答案无法统一>

3.X+3,X+4

(4)

答:第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动以'至上向下'的顺序进行编译执行源程序。

(5)完整程序如下:

assume cs:code

a segment

db 1,2,3,4,5,6,7,8

a ends

b segment

db 1,2,3,4,5,6,7,8

b ends

c segment

db 0,0,0,0,0,0,0,0

c ends

code segment

start:mov ax,a

mov es,ax

mov ax,c

mov ds,ax

mov bx,0

mov cx,8

s1:mov ax,es:[bx]

add [bx],ax

add bx,2

loop s1

mov ax,b

mov es,ax

mov ds,ax

mov bx,0

mov cx,8

s2:mov ax,es:[bx]

add [bx],ax

add bx,2

loop s2

mov ax,4c00h

int 21h

code ends

end start

(6)完整程序如下:

assume cs:code

a segment

dw 1,2,3,4,5,6,7,8

a ends

b segment

dw 0,0,0,0,0,0,0,0

b ends

code segment

start:

mov ax,b

mov ss,ax

mov sp,10h

mov ax,a

mov ds,ax

mov bx,0

mov cx,8

s: push [bx]

add bx,2

loop s

mov ax,4c00h

int 21h

code ends

end start

实验6 实践课程中的程序

-------------------------------

(2)编程:完成问题中的程序。

问题7.9完整程序如下:

assume cs:codesg,ss:stacksg,ds:datasg

stacksg segment

dw 0,0,0,0,0,0,0,0

stacksg ends

datasg segment

db '1. display '

db '2. brows '

db '3. replace '

db '4. modify '

datasg ends

codesg segment

start:

mov ax,stacksg

mov ss,ax

mov sp,16

mov ax,datasg

mov ds,ax

mov bx,0

mov cx,4

s: 外循环

push cx

mov si,3

mov cx,4

s0: 内循环

mov al,[bx+si]

and al,11011111b

mov [bx+si],al

inc si

loop s0

add bx,16

pop cx

loop s

mov ax,4c00h

int 21h

codesg ends

end start

1、

#include "stdio.h"

void print(int array[],int length){

int i

clrscr()

for(i=0i<lengthi++)printf("%d ",array[i])

}

main(){

int array[5]={6,8,4,9,5}

print(array,5)

getchar()

}

2、

#include "stdio.h"

double average(int array[],int length){

int i

double total=0,average=0

for(i=0i<lengthi++)

total=total+array[i]

average=total/length

return average

}

main(){

int array[5]={6,8,5},i

clrscr()

printf("The average is %0.8f",average(array,3))

getchar()

}

3、

#include "stdio.h"

int getmax (int array[],int length){

int max=array[0],i

for(i=0i<lengthi++)if(max<array[i])max=array[i]

return max

}

main(){

int array[5]={6,8,4,9,5}

clrscr()

printf("The max is %d",getmax(array,5))

getchar()

}

4、

#include "stdio.h"

int retrieve(int array[],int length,int x){

int i

for(i=0i<lengthi++)if(array[i]==x)break

if(i<length)return i+1/*返回x在该数组中的位置*/

else return -1/*没查找到*/

}

main(){

int array[5]={6,8,4,9,5},x=5

int order = retrieve(array,5,x)

clrscr()

if(order==-1)printf("%d is not in this array!",x)

else printf("The order of %d in this array is %d",x,order)

getchar()

}

5、

#include "stdio.h"

void sort(int array[],int length){/*选择排序法*/

int i,j,max,k,x

for(i=0i<length-1i++){

max=i

for(j=ij<lengthj++)

if(array[max]<array[j])max=j

if(max!=i){k=array[i]array[i]=array[max]array[max]=k}

}

clrscr()

for(i=0i<lengthi++)printf("%d ",array[i])

}

main(){

int array[5]={6,8,4,9,5}

sort(array,5)

getchar()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12015003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存