C语言实验报告五.docx

上传人:b****6 文档编号:3253639 上传时间:2022-11-21 格式:DOCX 页数:16 大小:25.39KB
下载 相关 举报
C语言实验报告五.docx_第1页
第1页 / 共16页
C语言实验报告五.docx_第2页
第2页 / 共16页
C语言实验报告五.docx_第3页
第3页 / 共16页
C语言实验报告五.docx_第4页
第4页 / 共16页
C语言实验报告五.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言实验报告五.docx

《C语言实验报告五.docx》由会员分享,可在线阅读,更多相关《C语言实验报告五.docx(16页珍藏版)》请在冰豆网上搜索。

C语言实验报告五.docx

C语言实验报告五

C语言实验报告(五)

一、实验目的

1.掌握使用C语言中数组的方法

2.掌握如何定义数组,如何引用数组元素

3.掌握二维数组的元素在内存中的存放方式

4.掌握什么是字符串,字符串结束符的作用

5.实现字符串的存储和操作,包括字符串的输入和输出

6.理解C语言将字符串作为一个特殊的一维字符数组

二、实验内容

1.津津的学习情绪

描述:

津津上初中了。

妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。

另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。

但是津津如果一天上课超过八个小时就会不高兴,而且,上得越久就会越不高兴。

假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。

请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴。

如果会的话,哪天最不高兴。

输入:

输入数据有多组,第一行包含一个整数T,表示有T组数据。

每组输入包括七行数据,分别表示周一到周日的日程安排。

每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出:

输出包括一行,这一行只包含一个数字。

如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。

如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的—天。

样例输入:

1

5 3

6 2

7 2

5 3

5 4

0 4

0 6

样例输出:

3

·程序代码:

#include"stdio.h"

inta[10000];

intmain(void)

{

intn,r;

inti,ii,tt;

charc;

intk,maxm;

a[0]=0;

scanf("%d",&n);

for(tt=1;tt<=n;tt++)

{

k=0;

maxm=0;

for(i=1;i<=7;i++)

{

scanf("%d%d",&r,&ii);

r+=ii;

a[i]=r;

if(r>8)

{

k++;

if(a[maxm]

{

maxm=i;

}

}

}

if(k==0)

printf("0");

else

printf("%d",maxm);

printf("\n");

}

return0;

}

2.数据统计

描述:

某公司邀请40个顾客参加投票活动,选举他们最喜爱的产品,以决定公司今后的销售策略。

共有编号为1号~10号的10个产品,每人只能选择一个产品。

编写程序,在整数数组中设置这40个值(投票情况),然后统计投票结果(每一个产品的得票数目)。

输入:

40个数值在1~10(含1和10)之间的整数

输出:

如下所示:

样例输入:

1 1 1 1 1 2  3 3 3 3 3 4 4 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 10 10

样例输出:

如上图所示

·程序代码:

#include"stdio.h"

intmain()

{

inta[40],i,b[10]={0},j;

for(i=0;i<40;i++)

scanf("%d",&a[i]);

printf("产品得票直方图\n");

for(i=0;i<40;i++)

b[a[i]-1]++;

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

{

printf("%d%d",i+1,b[i]);

for(j=1;j<=b[i];j++)

printf("*");

printf("\n");

}

return0;

}

3.统计不及格人数

描述:

有n个(n<=40)学生,现要统计这n个学生一次考试中不及格的人数

输入:

有两行,第一行为整数n;第二行为n个整数成绩(100(含)以内)

输出:

一个整数,表示n个成绩中低于60分的个数

样例输入:

5

90 45 67 80 56

样例输出:

2

·程序代码:

#include"stdio.h"

#defineN40

intmain()

{

inta[N],K=0,i,n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

if(a[i]<60)

K++;

printf("%d\n",K);

return0;

}

4.最值问题

描述:

有一个长度为n的整数序列。

请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。

输出转换好的序列。

输入:

输入包括两行。

第一行为正整数n(1≤n≤10)。

第二行为n个正整数组成的序列。

输出:

输出转换好的序列。

数据之间用一个空格隔开。

样例输入:

5

3 1 5 4 2

样例输出:

1 3 2 4 5 

·程序代码:

#include"stdio.h"

#include"math.h"

inta[100];

ints;

voidswap(intq,intw)

{

s=a[w];

a[w]=a[q];

a[q]=s;

}

intmain(void)

{

a[50]=888888;

inti,k,n,maxm=0,minn=50;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

scanf("%d",&a[i]);

if(a[i]>a[maxm])

maxm=i;

if(a[i]

minn=i;

}

swap(1,minn);

swap(n,maxm);

for(i=1;i<=n;i++)

printf("%d",a[i]);

printf("\n");

return0;

}

5.数组逆序

描述:

有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m

输入:

输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。

输出:

按先后顺序输出n个整数。

样例输入:

5 1 2 3 4 5

2

样例输出:

4 5 1 2 3

·程序代码:

#include"stdio.h"

#include"math.h"

inta[100];

ints;

voidswap(intq,intw)

{

s=a[w];

a[w]=a[q];

a[q]=s;

}

intmain(void)

{

intn,i,m,k;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

scanf("%d",&a[i]);

}

scanf("%d",&m);

k=n-m+1;

for(i=k;i<=n;i++)

{

printf("%d",a[i]);

}

for(i=1;i

{

printf("%d",a[i]);

}

printf("\n");

return0;

}

6.插入排序

描述:

有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。

输入:

输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。

n和m同时为0标示输入数据的结束,本行不做处理。

输出:

对于每个测试实例,输出插入新的元素后的数列。

样例输入:

3 3

1 2 4

0 0

样例输出:

1 2 3 4 

·程序代码:

#include"stdio.h"

#include"math.h"

inta[100];

ints;

intpd;

voidswap(intq,intw)

{

s=a[w];

a[w]=a[q];

a[q]=s;

}

intmain(void)

{

intn,m,i;

scanf("%d%d",&n,&m);

while(n!

=0&&m!

=0)

{

pd=0;

for(i=1;i<=n;i++)

{

scanf("%d",&a[i]);

}

for(i=1;i<=n;i++)

{

if(a[i]>=m&&a[i-1]<=m&&pd==0)

{

printf("%d",m);pd=1;

}

printf("%d",a[i]);

}

if(pd==0)

printf("%d",m);

printf("\n");

scanf("%d%d",&n,&m);

}

return0;

}

7.两数组最短距离

描述:

已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。

输入:

第一行为两个整数m,n(1≤m,n≤1000),分别代表数组f[],g[]的长度。

第二行有m个元素,为数组f[]。

第三行有n个元素,为数组g[]。

输出:

数组的最短距离

样例输入:

5 5

1 2 3 4 5

6 7 8 9 10

样例输出:

1

·程序代码:

#include"stdio.h"

#include"math.h"

inta[10000];

intb[10000];

intmaxm1,maxm2,minn1,minn2;

voidswap(intq,intw)

{

intss;

ss=a[w];

a[w]=a[q];

a[q]=ss;

}

intabs(intqq,intww)

{

if(qq-ww>=0)

returnqq-ww;

else

return(qq-ww)*-1;

}

intmain(void)

{

intn,m,i,ii;

minn1=minn2=9999999;

scanf("%d%d",&n,&m);

for(i=1;i<=n;i++)

{

scanf("%d",&a[i]);

}

for(i=1;i<=m;i++)

{

scanf("%d",&b[i]);

}

for(i=1;i<=n;i++)

{

for(ii=1;ii<=m;ii++)

{

if(abs(a[i],b[ii])

minn1=abs(a[i],b[ii]);

}

}

printf("%d",minn1);

return0;

}

8.字符串处理

描述

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1