实验室开放项目实验报告-01

实验室开放项目实验报告

实验名称:实验一输入输出格式

实验目的:熟练掌握程序设计竞赛中通常采用的输入输出格式和掌握不同格式输入输出数据的处理方法

实验内容:

在本地电脑中新建一个文件夹,用于存放C源程序,文件夹的名字要求是“学号姓名”,如 E:\ 1420115555张三。启动C-Free,完成如下各题。

  1. 问题描述:计算a+b。

输入:输入为两个整数a和b(0≤a,b≤10)。

输出:输出a+b的和。

输入样例

1    2

输出样例

3     

修改1:

输入:第一行为一个整数N,接下来有N行数据,每行有2个整数a和b,整数之间由空格分隔。

输出:对每行输入的a和b,计算a+b的值并输出,每个输出结果占一行。

输入样例

2       

1    5  

10   20

输出样例

6       

30      

修改2:

输入:输入包括多组测试数据,每组测试数据包含a、b两个整数,并且占一行。当测试数据为0 0时,表示输入结束,并且这组数据不需要处理。

输出:给出每组输入数据的计算结果,并且每个结果占一行。

输入样例

1    5  

10   20

0    0  

输出样例

6       

30      

修改3:

输入:输入文件为in.txt,文件中包含多组测试数据,每组测试数据占一行;每行开始的第一个整数N,表示本组测试数据中包含N个整数,接下来是这N个整数。

输出:结果保存在文件out.txt中,对每行的N个整数求和后输出,每组测试数据的结果占一行。

输入样例

1    5  

10   20

0    0  

输出样例

6       

30      

  1. 问题描述:将字母A变成字母F,B变成字母G等,即变换成其后的第5个字母,而V变成A,W变成B,X变成C,Y变成D,Z变成E,原文中的字母按此规律转换,现给出密文,要求输出原文。

输入:输入包括多组非空密文,每组密文之间没有空行,密文中所有字母均为大写,并且每组密文包含3部分,每部分由回车键分隔。

  1. 第一部分为:START.
  2. 第二部分为:包含最多200个字符的密文.
  3. 第三部分为:END.

输入数据结束的最后一行为:ENDOFINPUT

输出:对每组密文输出其对应的原文。

输入样例

START

NS BFW, TK

END

START

IFSLJW PSTBX

END

ENDOFINPUT

输出样例

IN WAR,OF

DANGER KNOWS

上交作业的方法:

  1. 将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。
  2. 保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学号姓名”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“C语言竞赛训练”子文件夹下的“报告上交01”文件夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名”命名的word文档上交到“报告上交01”文件夹下的另一子文件夹“word文件上交”中。

特别提醒:每次上传的文件名一定要是“学号姓名. doc” (如1520115555张三.doc),而且学号一定要在前面,学号没写或学号写在后面的一律按没上传对待。上传前一定要把本文件退出,否则无法上传。

实验结果与分析(运行界面截图,打开需要截的图,按ALT+PrintScreen后,将光标移到下面,单击右键后选择“粘贴”):

 1.

(Ⅰ)程序代码及注释

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,b;

scanf("%d%d",&a,&b);

printf("%d\n",a+b);

return 0;

}

修1

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,b,n,i;

scanf("%d",&n);

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

{

scanf("%d%d",&a,&b);

printf("%d\n",a+b);

}

return 0;

}

修2

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,b;

while(1)

{

scanf("%d%d",&a,&b);

if(a==0&&b==0)

break;

printf("%d\n",a+b);

}

return 0;

}

修3

#include <stdio.h>

int main(int argc, char *argv[])

{

int a,n,i,sum;

FILE *fin,*fout;

if((fin=fopen("in.txt","r"))==NULL)

{

printf("input file open error!\n");

return;

}

if((fout=fopen("out.txt","w"))==NULL)

{

printf("output file open error!\n");

return;

}

while(!feof(fin))

{

fscanf(fin,"%d",&n);

for(i=0,sum=0;i<n;i++)

{

fscanf(fin,"%d",&a);

sum+=a;

}

fprintf(fout,"%d\n",sum);

}

fclose(fin);

fclose(fout);

return 0;

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

修1

修2

修3

2.

(Ⅰ)程序代码及注释

#include <stdio.h>

int main(int argc, char *argv[])

{

int i;

char strb[10],str[100];

while(1)

{

gets(strb);

if(strcmp(strb,"ENDOFINPUT")==0)

break;

gets(str);

for(i=0;str[i]!='\0';i++)

if(str[i]>='F'&&str[i]<='Z')

str[i]=str[i]-5;

else if(str[i]>='A'&&str[i]<='E')

str[i]=str[i]-5+26;

gets(strb);

puts(str);

}

return 0;

}

(Ⅱ)运行结果窗口截图(窗口适当缩小)和分析

问题及解决方法,心得:(实验中遇到的问题和解决问题的方法)

评定成绩:

  • 38
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值