C语言博客作业--数据类型

一、PTA实验作业

题目1:7-2 区位码输入法

1. 本题PTA提交列表

2. 设计思路

{

定义字符型变量 ch1,ch2,ch3,ch4;

定义整数型变量 a,b;

ch1=getchar(); //输入值

ch2=getchar();

ch3=getchar();

ch4=getchar();

a=10(ch1-48)+ch2-48+160; //运算结果

b=10(ch3-48)+ch4-48+160;

putchar(a);

putchar(b);

}

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

问题1:刚开始只是用两个ch,有结果但是结果与答案不一样

解决方法:在ch1,ch2后面加上printf,发现输出结果为‘1’,‘6’,就明白了没有‘大于10的字符’。

题目2:7-8 判断合法标识符

1. 本题PTA提交列表

2. 设计思路

定义变量repeat(输入几位数字),count,count1(用于判断结果),n(判断结果),i(用于循环),ch
     输入repeat
for(i=1;i<=repeat;i++){   //循环
    n等于0;
    count1等于0;
    count等于0;
如果((ch=getchar())!=‘\n‘){    //输入字符
        count1++;     //输入字符的数量
        如果((n==0)&&(((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))||(ch>=‘0‘&&ch<=‘9‘)))  //判断字符是否满足开头的要求
        count++;
        如果(n==1&&(((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))||(ch==‘_‘||(ch>=‘0‘&&ch<=‘9‘))))  //判断字符是否满足后面的要求
        count++;
        n=1;   

    }

end

如果(总量count=等于count1) //输出结果

输出("Yes\n");

else

输出("No\n");

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

问题一:写出代码,感觉没错,在dev上无结果

解决方法:在代码一个个切割开来,判断哪个地方与结果不服,结果是ch=getchar()!=‘\n‘中ch=getchar()还要加括号

题目3:7-10 简单计算器

1. 本题PTA提交列表

2. 设计思路

 定义变量n,m,sum,count=0, op;
输入n;
sum=n;
for(;;){
    输入op)
     如果是等号,结束循环
             输入m
    如果是+,运行下列式子,依次如下
    sum=sum+m;
    如果是-
    sum=sum-m;
    如果是*
    sum=sum*m;
    如果是-
    if(m!=0)  //限制分母是0
    sum=sum/m;
    else
    count++;
}
else
count++;//一些不符合要求的加1
}
如果(count>0)
输出ERROR
else
输出sum;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

本题没有问题

二、截图本周题目集的PTA最后排名。

三、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?

一维数组定义要有类型名,数组名[数组长度]

初始化可以用static

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

在内存中分配了一段连续的存储单元,并对这些单元进行编号 ,详细请见C语言课本150页右上角

数组名字是数组首地址

1.3 为什么用数组?

在特定的题目下需要重复使用一些先前的数据,所以用数组,还有一些题目用数组可以大大提高编程效率

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.

选择法

定义 a[10],i,j,k,t,n=10;

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

输入 a[i]

for(i=0;i<n-1;i++) //外循环控制,n个数选n-1次{

k=i; /假设当前的第一个数为最值,记在k中 /

for(j=i+1;j<n;j++) /从下一个数到最后一个数之间找最值/

如果(a[k]<a[j]) /*如果满足条件

    k=j;         /*则将其下标记在k中*/
在转换数值大小

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

输出a[i])

冒泡法

定义 a[10],i,j,t;

for(i=0;i<10;i++)//输入10个值

输出a[i]

for(j=0;j<9;j++) /外循环控制排序次数,n个数排n-1次/

for(i=0;i<9-j;i++) //内循环用于第j次比较n-j次

if(a[i]>a[i+1]) /满足条件逆序则交换*

{ t=a[i];

a[i]=a[i+1]; //转换数值

a[i+1]=t;

}

for(i=0;i<10;i++) //依次输出结果

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

直接插入排序

定义 a[10],i,j,t;

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

输入a[i])

for(i=1;i<10;i++) /外循环控制次数,n个数从第2个数开始到最后共进行n-1次插入/

{

t=a[i]; /将待插入数存储于变量t中/

for( j=i-1 ; j>=0 && t>a[j] ; j-- ) /在有序序列(下标0 ~ i-1)中寻找插入位置/

a[j+1]等于a[j]; /如果没有找到插入位置,则将元素后移一个位置/

a[j+1]等于t; /找到插入位置,插入/

}

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

输出a[i])

1.5 介绍什么是二分查找法?它和顺序查找法区别?

就是取中间大小的数字与要找的数字进行比较,如果待查数字大于中间数字,把中间数字与大数字的中间数字

在进行比较依次直到找到或者找不到为止。

区别是2分查找法的效率高,顺序查找法效率低

1.6 二维数组如何定义、初始化?

类型名 数组名[行长度][列长度]

用static初始化比较简单,只要加上{0}

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。

定义一个2维矩阵inta[3][3](在这里先介绍33,nn也一样)

123

456

789

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

for(j=0;j<3;j++)

如果i大于等于j

a[i][j]等于a[j][i] //交换数组大小

j^=i^=j^=i //行列交换

输出结果

147

258

369

1.8 二维数组一般应用在哪里?

矩阵和一些用2维数组可以大大增加代码效率的编程

2.本周的内容,你还不会什么?

1.对于这种题目还是没有思路,遇到复杂的代码,基本看不出它在做什么

2.个人感觉数组的定义不是很难,难的是巧妙的应用它,对于冒泡法感觉不是很熟悉,对于行列互换掌握的不是很好

3.对于字符的优先级没有搞清楚。

时间: 2024-11-09 01:24:31

C语言博客作业--数据类型的相关文章

C语言博客作业--一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个; 输入n的值 i从0开始,每次加1,输入a[i]的值,直到i==n结束循环 i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足 j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足 如果a[i]==a[j],b[i]加一 i从0开始,判断i是否 输出a[j

C语言博客作业—一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){//进行N次判断 for(j 0 to N-1) if(a[i]和a[j]相等) count加一 i等于0//第一次判断 使max=count; n=i;//n放下标,max放次数 i不等于0且count大于max 使max=count; n=i;//重新赋值 count为0//每次循环count为0

C语言博客作业--字符数组

题目1:题目名称 本题PTA提交列表(要提交列表,不是结果) 设计思路(伪代码或流程图) 伪代码尽量文字描述,请用下面markdown符号渲染.如: 定义变量i表示XXXXX for i=0 to n-1 a[i]执行运算等等. end for 3.代码截图(注意,截图,截图,截图.不要粘贴博客上.不用用···语法去渲染) 4.本题调试过程碰到问题及PTA提交列表情况说明. PTA提交列表中的每个错误详细说明为什么及如何解决. 题目2,3同题目1 二.截图本周题目集的PTA最后排名.(2分) P

C语言博客作业--函数嵌套调用

一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现以下功能: 命令1:能够新增学生信息,并计算总分和平均分. 能够新增学生成绩信息. (学生按照学号排序,新增学生应该按照学号插入已有数组,并保持有序,插入排序实现) 命令2:根据输入学号和课程号修改学生成绩信息. 命令3:根据输入学号和课程删除学生成绩信息. 命令4:输出显示所有学生成绩信息.(按照

C语言第六次博客作业--数据类型

一.PTA实验作业 题目1: 7-3 倒顺数字串 1. 本题PTA提交列表 2.设计思路 (1) 定义两个整型变量i,n,n为输出的数. (2)输入n. (3)若n的值不为1, for i=1 to i<=n, 输出i和一个空格, end. for i=n-1 to i>1, 输出i和一个空格, end. 输出1. (4)若n==1,则直接输出1. 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 (1)没有考虑只输入1的情况. 解决方法:加入if(n==1)的情况. 题目2:7

C语言第六周博客作业--数据类型

一.PTA实验作业 题目1: 7-6 掉入陷阱的数字 1. 本题PTA提交列表 2.设计思路 定义变量N,i,g=1/位数/,a/各位数字相加的和/,b=0,j,N1,c,d/储存N/; do{ for(i=0;i 3.代码截图 4.本题调试过程中碰到的问题以及解决方案 题目2: 7-4 打印菱形图案 1. 本题PTA提交列表 2.设计思路 int n,a,i,l,j,k,g,h,count=0,count1=0; 输入n if((n-1)%2==0)则继续 由规律可以看出, 上半部分(大三角型

C语言博客作业--函数

一.PTA实验作业 6-1 符号函数 1.本题PTA提交列表 2.设计思路 3..本题调试过程碰到问题及PTA提交列表情况说明. 前面的错误都是由于关系运算符中==写成=导致的 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistich函数(判断number是否为水仙花数) 定义循环变量i,j,a储存每一位上的数,sum总和count位数 for(i=number;i>0;i=i/10)每执行一次count+1 for(k=1;k<=count;k++)

C语言博客作业--结构体

一.PTA实验作业 题目1:按等级统计学生成绩 1. 本题PTA提交列表 2. 设计思路 for i=0 to i=n 如果分数大于等于85,就让grade为A 如果分数大于等于75,就让grade为B 如果分数大于等于60,就让grade为C 如果分数小于60,就让grade为D,count++ count用于统计不合格人数 end i 返回count 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 本题没错 题目2:6-4 结构体数组按总分排序 1. 本题PTA提交列表 2.

C语言博客作业--数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义number数组存放数字,count数组存放出现次数 定义i控制第一层循环,j控制第二层循环,N表示有N个数字,max为比较出现次数时候使用的最大值 for i=0 to <1000 { 清零count[i]=0 } while(输入N){ for i=0 to <N {//按顺序取数 输入number[i] for j=0 to <N {//和所有数比较 如果出现了相同的数则