C语言作业--数据类型

一、PTA实验作业

题目1:7-4 打印菱形图案

1. 本题PTA提交列表

2. 设计思路

定义整型变量 n,i,space,m,q,其中n表示行数,space表示空格
输入一个奇数n
    菱形上半部分
    space=1
           满足space<=(n+1)/2-i
           space递增,实现循环输出空格
           m=1
           满足m<=2*i-1
           m递增,实现循环输出星号后跟空格
     循环结束后换行

      菱形下半部分
    space=1
       满足space<=i-(n+1)/2
        space递增,循环输出空格
      q=1
       满足q<=2*n-2*i+1
       q递增,实现循环输出星号后跟空格
           循环结束后换行

            i递增,直到不满足i<=n
           return 0;

3.代码截图

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

主要就格式问题,明明不管怎么输都是正确的图案,提交一直显示是格式错误。。。包括换行,包括空格都有考虑进去,但是图案是越改越离奇。就从代码开始分析,发现利用if语句判断后实现循环结束换行完全是多余的,转换成循环体外加一个输出换行就可以实现我们想要的效果了。删掉后,提交显示正确。

题目2:7-6 掉入陷阱的数字

1.本题PTA提交列表

2.设计思路

函数声明int fun(int a);

int i,N0,其中N0表示第一个数

输入N0

int a[3000];

把N0的值赋给a数组第一个元素

调用函数计算 fun(N0),并将它赋值给a[i]

i=2;

满足要求a[i-1]!=a[i-2],输出行数i-1和a[i=1]

不满足条件,执行a[i]=fun(a[i-1]),i递增

函数int fun(int a)

定义变量ones表示末尾数字,sum表示各数字和,result表示计算结果

sum=0;

当a不等于0时

计算末尾数字ones=a%10;

去除末尾数字a=a/10;

各数字和sum=sum+ones;

计算结果result=sum*3+1;

返回计算结果result

3.代码截图

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

这一题没遇到什么问题,主要就是利用了刚学的数组,不太熟悉,就写下怎么写的吧

这一题阅读完题目后发现下标很重要,而数组特别适合用来表示下标,于是选择了数组。另外计算result的过程有多次,选择利用函数,这样通过引用函数来进行计算代码比较清晰

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

1.本题PTA提交列表

2.设计思路

定义俩个整型变量 m,n;
定义整型变量 result表示是计算结果
定义字符型变量op
scanf("%d",&m);
result=m;
读入的字符不是等号时
    scanf("%d",&n);
        如果字符为 ‘+‘:result=m+n;跳出循环
         如果字符为‘-‘:result=m-n;跳出循环
         如果字符为 ‘*‘:result=m*n;跳出循环
         如果字符为 ‘/‘:
            如果n不为0
                计算result=m/n;
            如果n为0,输出ERROR,程序结束
         如果字符不是加减乘除 printf("ERROR"),程序结束
                   m=result
                       输出result
                           程序结束

3.代码截图

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

问题:没有判断输入m后输入的字符是= 这种情况

解决办法:增加if语句,判断输入字符是=,但是运行发现这个问题是解决了,但是正常输入,结果都是ERROR,经过调试发现直接跳到default这个分支,输出ERROR.。可以将m赋值给result,就可以实现输出类似1=1这种情况

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

三、本周学习总结

1.你学会了什么?

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

一维数组定义一般形式: 类型名 数组名 [数组长度] 如 int a[10]

(1)类型名指定数组中每个元素的类型

(2)数组名是数组变量的名称,是一个合法的标识符

(3)数组长度是一个整型常量表达式,设定数组大小

初始化

数组中有若干元素,可以在{}中给出各数组初值,各初值之间用逗号隔开,把{}中初值依次赋值给各元素

注意:初始化的数据个数不能超过数组元素的个数,否则出错,如 int a[4]={1,2,3,4,5}是错的

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

数组名是一个地址常量,存放数组内存空间的首地址

1.3 为什么用数组?

在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分。表达简洁,可读性好,便于使用循环结构

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

(1)选择法排序

定义整型变量i,index,k,n,temp,index存放最小值所在的下标

定义数组a[10]

输入n

i=0

当i<n时,输入数, i递增

将输入的数依次赋给数组a的n个元素

k=0;k<n-1,用index来存放最小值所在下标

判断数组a中元素与a[index]大小

如果a[i]<a[index],index=i,最小元素与下标为k的元素交换

temp=a[index];

a[index]=a[k];

a[k]=temp;

输出排好后的n 个数组元素的值

(2)冒泡法排序

定义数组a[n]

定义整型变量i,j,temp,n

i=0

满足i<=n-1时

输入数

i++

将这组数据依次赋值给a[n]

判断相邻俩个数据,如果a[j]>a[j+1]

temp=a[j]

a[j]=a[j+1]

a[j+1]=temp

像这样的过程要重复n=q-i次

循环结束后输出新数组

(3)直接插入法排序

定义数组a[n]

定义整型变量i,j,k,temp

i=0;

满足i<=n-1时

输入数

i=0;

temp表示最小值的角标

判断数据a[j]和temp的大小

如果temp<a[j],a[j]=temp

通过a[k+1]=a[k]实现插入位置后的数据整体往右挪

重复n -1次,输出新数组

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

对一组有序的数字中进行查找,传递相应的数据,比较与元数据相同的数据,查找到后返回对应数组下标

区别:顺序查找的特点是从第一个元素开始一个一个往下查找,如果和目标一致的元素,则查找成功,如果到最后一个元素仍没有目标元素,则查找失败。而二分查找就是从表的中间查找目标元素,如果找到一致元素,这查找成功,如果中间元素比目标元素小,仍用二分查找表的后半部分,反之,中间元素比目标元素大,则查找表的前半部分。

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

二维数组定义形式:类型名 数组名 [行长度][列长度]

初始化:

(1)分行赋初值

一般形式:类型名 数组名 [行长度][列长度]={{初值表0},...,{{初值表k},...}

把初值表中的K中所有数据依次赋给第k行的元素

(2)顺序赋值法

一般形式:类型名 数组名 [行长度][列长度] = {初值表}

根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素

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

行下标与列下标互换。 下三角:i<=j 上三角:i>=j 对称矩阵: a[i][j]=a[j][i]

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

(1)矩阵的转置

(2)求最大元素值及其行列号

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

开始接触伪代码,明白代码意思,但是不熟悉伪代码要如何表达,写的很混乱,尤其是像冒泡,插入,顺序排序这种,看上面的就知道是个什么状态了

时间: 2024-10-14 21:26:42

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

C语言基本数据类型简介

C语言基本数据类型简介 1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型.整形和长整形. 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前.高位在后,例如0x12345678在内存中的存储如下: 地址:0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b 数据:

从头开始-03.C语言中数据类型

基本数据类型 整形: Int 4字节 %d / %i Short 2字节 %hd Long 8字节 %ld Longlong 8字节 %lld Unsigned 4字节 % 浮点型 单精度 Float 4字节 %f 双精度 Double 8字节 %lf 字符  char   1字节   %c 枚举:当一个变量只用几个固定的取值的时候使用枚举 特点:先定义枚举类型,然后使用枚举类型定义枚举变量 作用:提高代码的可读性,方便程序员之间的交流 注意:枚举类型的实质是整形 枚举定义的每一个成员都代表一个

黑马程序员 C语言:数据类型

C语言的数据类型 C语言程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以包括三个方面: ·数据类型·存储类型·作用域 所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的.在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类. 1.基本数据类型 基本数据类型最主要的特点是,其值不可以再分解为其它类型.也就是说,基本数据类型是自我说明的. 2.构造数据类型构造数据类型 是根据已定义的一个或多个数据类型用构造的方法来定义的.

谈谈C语言的数据类型

本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指针,指针与数组的区别,指针作为函数参数,函数作为函数参数.作为例子,本文将通过通用链表结构来说明void*如何实现通用结构设计,通过相对通用的哈希结构来说明如何利用函数指针作为函数的参数以及如何在结构体中封装函数指针以实现相当于类的功能结构. 首先,通过一些常见的声明来开始本文,这些声明几乎包含本文

C语言基本数据类型

所谓数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的.在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类. 数据类型说明: 基本数据类型: 基本数据类型最主要的特点是,其值不可以再分解为其它类型.也就是说,基本数据类型是自我说明的. 构造数据类型: 构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的.也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”.每个“成员”都是一个基本数据类型或又是一个构造类型.在C语言中,构

C语言代写,C语言作业代写,代写C语言,C语言编程代写

C语言代写,C语言作业代写,代写C语言,C语言编程代写 我是一线IT企业程序员,目前接各种代码代写业务: 代写C语言.代做C语言.C语言作业代写.C语言代写 代写C++.代做C++.C++作业代写.C++作业代写 代写Python.代做Python.Python作业代写.Python作业代做 代写Java.代做Java.Java作业代写.Java作业代做 代写编程作业.代做编程.编程代写.编程代做 先写代码再给钱,不要任何定金!价钱公道,具体见图,诚信第一!(涉及图形化界面.或领域类知识如金融数

C语言基本数据类型大小

C语言基本数据类型占用的字节数可以通过如下例子获取: #include<stdio.h> int main(void) { printf("char size=%d \n",sizeof(char)); printf("int size=%d \n",sizeof(int)); printf("long size=%d \n",sizeof(long)); printf("float size=%d \n",siz

代写C语言,C语言代写,C语言作业代写,C语言编程代写

代写C语言,C语言代写,C语言作业代写,C语言编程代写 我是一线IT企业程序员,目前接各种代码代写业务: 代写C语言.代做C语言.C语言作业代写.C语言代写 代写C++.代做C++.C++作业代写.C++作业代写 代写Python.代做Python.Python作业代写.Python作业代做 代写Java.代做Java.Java作业代写.Java作业代做 代写编程作业.代做编程.编程代写.编程代做 先写代码再给钱,不要任何定金!价钱公道,具体见图,诚信第一!(涉及图形化界面.或领域类知识如金融数

3、C语言之数据类型、运算符与表达式

C语言之数据类型.运算符与表达式 1.C的数据类型 数据类型决定: (1)数据占内存的字节数 (2)数据取值范围 (3)可以进行的操作 2.常量与变量 常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同类型: 整型 100 ,125,-1000 实型:3.14, 0.23 字符型: 'a', 'b' 字符串型:"a", "adfdg", "1233" 用某种符号来代表某个常量,称这个符号为符号常量 #define PRI