2018/05/30
Posted 万俟独莲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018/05/30相关的知识,希望对你有一定的参考价值。
一、例程调试(20分)
调试下面2个例程,各位同学调试用自己的学号模3(即除以3取余数)加1序号及该序号乘以2的题。写明调试过程,如错误现象(如给定输入数据,但输出未实现预计功能),编译错误(截小图)提示等,写明调试修改过程(10分); 说明:有可能没有错误提示,但未达到预计功能。题目来源为“ C语言程序设计实验与习题指导(第3版)调试源程序”中error07_1~6;利用Autoflowchart软件查看程序的流程图,将流程图导成word格式,加入必要的文字说明,并说明该程序的功能(10分)
16%3+1=2
2.
#include <stdio.h>
int main(void)
{
int i, x, n;
int a[10];
printf("输入数组元素的个数:");
scanf("%d", &n);
printf("输入数组%d个元素:", n);
for(i = 0; i < n; i++)
scanf("%d", a[i]);
printf( "输入x:" );
scanf("%d", &x);
for(i = 0; i < n; i++)
if(a[i] != x) break;
if(i != n)
printf( "没有找到与%d相等的元素!\n", x);
else
printf( "和%d相同的数组元素是a[%d] = %d\n", x, i, a[i]);
return 0;
}
更改后:
#include<stdio.h>
int main(void)
{
int N,X;
printf("输入数组个数:");
scanf("%d",&N);
printf("输入判断元素:");
scanf("%d",&X);
int i;
i=N;
int num[i];
for(i=0;i<N;i++)
{
scanf("%d",&num[i]);
}
for(i=0;i<N;i++)
{
if(num[i]==X)
{
printf("和%d相同的数组元素是num[%d] = %d\n", X, i, num[i]);
return 0;
}
}
printf("没有找到与%d相等的元素!\n");
return 0;
}
二、Pta作业 计算机高级语言(C)_第6次作业_数组1 (20分)
三、Pta作业 计算机高级语言(C)_第6次作业_数组2 (20分)
四、Pta作业 算机高级语言(C)_第6次作业_数组3二维数组+字符数组 (10分)
五、数组知识点自测(每一项均写一个例程,并附测试数据及测试结果) (30分)
5.1读入若干整数,找出最大值,最小值及位于数组的位置;
5.2 读入若干整数,输入要查找的整数X,输出X第一个位置或not found;
#include<stdio.h>
int main(void)
{
int N,X;
scanf("%d",&N);
scanf("%d",&X);
int i;
i=N;
int num[i];
for(i=0;i<N;i++)
{
scanf("%d",&num[i]);
}
for(i=0;i<N;i++)
{
if(num[i]==X)
{
printf("%d\n",i);
return 0;
}
}
printf("Not Found\n");
return 0;
}
5.3 交换排序(降序);
#include<stdio.h>
#include<stdlib.h>
void bubleSort(int data[], int n);
int main()
{
int data[10] = {43, 65, 4, 23, 6, 98, 2, 65, 7, 79};
int i;
printf("原先数组:");
for(i=0;i<10;i++) {
printf("%d ", data[i]);
}
printf("\n");
printf("冒泡排序:");
bubleSort(data, 10);
for(i=0;i<10;i++) {
printf("%d ", data[i]);
}
printf("\n");
}
void bubleSort(int data[], int n) {
int i,j,temp;
for(j=0;j<n-1;j++) {
for(i=0;i<n-j-1;i++) {
if(data[i]<data[i+1]) {
temp = data[i];
data[i] = data[i+1];
data[i+1] = temp;
}
}
}
}
5.4 选择排序(升序);
#include<stdio.h>
#include<stdlib.h>
void shellSort(int data[], int n);
int main()
{
int data[10] = {43, 65, 4, 23, 6, 98, 2, 65, 7, 79};
int i;
printf("原先数组:");
for(i=0;i<10;i++) {
printf("%d ", data[i]);
}
printf("\n");
printf("选择排序:");
selectSort(data, 10);
for(i=0;i<10;i++) {
printf("%d ", data[i]);
}
printf("\n");
}
void selectSort(int data[], int n) {
int i,j,mix,temp;
for(i=0;i<n-1;i++) {
int mix = i;
for(j=i+1;j<n;j++) {
if(data[j] < data[mix]) {
mix = j;
}
}
if(i != mix) {
temp = data[i];
data[i] = data[mix];
data[mix] = temp;
}
}
}
5.5 二维数组编程;读入一个整形二维数组,找出最小值及位置,求各行数据的和 ;
#include<stdio.h>
int main(void)
{
int m,n;
scanf("%d %d",&m,&n);
int num[m][n];
int a,b;
for(a=0;a<m;a++)
{
for(b=0;b<n;b++)
{
scanf("%d",&num[a][b]);
}
}
for(a=0;a<m;a++)
{
int sum=0;
for(b=0;b<n;b++)
{
sum+=num[a][b];
}
printf("%d\n",sum);
}
return 0;
}
5.6 读入一个字符串,直到遇到#为止,将字符中大小字符转为小写,小写字符转为大写。
#include<stdio.h>
int main(void)
{
char ch[30];
int i;
for(i=0;ch[i-1]!=‘#‘;i++)
{
scanf("%c",&ch[i]);
}
for(i=0;ch[i]!=‘#‘;i++)
{
if(islower(ch[i]))
{
ch[i]=toupper(ch[i]);
}
else
{
ch[i]=tolower(ch[i]);
}
printf("%c",ch[i]);
}
return 0;
}
六、持续改进学习方法、措施落实情况(10分)
6.1结合上次博客作业,针对自己所提出的各种学习中遇到的困难解决方法,总结一下,自己是否落实之前的计划。没有落实的原因是什么。
没有完成上次的目标,差了半章的章程,最近学习高数时间有点长,加上玩ps4时间有点多,所以学习c语言分配的时间有点少,所以没有完成,下次控制一下时间,争取能完成每个阶段的小目标
6.2记录近一周的课下编码情况,(实事求事)
具体内容为包括但不限于日期、每天编码时间(分钟)、每天代码行数,要求插入表,并统制拆线图。
6.3下一步的学习改进措施与计划
下一个阶段是第十一章和第十二章,两周,包括编程练习。
以上是关于2018/05/30的主要内容,如果未能解决你的问题,请参考以下文章