C语言程序设计(12)

C语言程序设计(12),第1张

第一处填空,是个三重循环:

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

for(j=0;j<N+1;j++)

for(k=j+1;k<N;k++)

这里,i是数组的行标号,第一重循环表示依次对N行数组分别排序

然后j和k是列下标,一个二重循环排序的过程,其原理如下:

比如2 3 5 1 0 按从小到大排序

首先,j=0 k=1~4,就是数字2分别与3 5 1 0比较,把小的放到2的位置来

一轮之后,就变成 0 3 5 2 1

第二轮,j=1 k=2~4 ,就是数字3分别与5 2 1比较,把最小的放到3的位置

就是依次找出最小的放在最前,找出第二小的,放第二个位置……

依次这样循环到最后,就能完成排序

第二个填空,是要完成“第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大到小排序”这样的功能,这样填:

if(i%2==1a[i][j]<a[i][k]:a[i][j]>a[i][k])

表示,如果i%2==1(即i是奇数行标),则采用a[i][j]<a[i][k]这个判断条件,否则就采用a[i][j]>a[i][k]这个判断条件

这样就能实现偶行从小到大排序,奇行从大到小排序咯

=============================================

1

outarr(aa);

这样是把数组的地址当作实参传递过去,而,形参是这样

void outarr(int a[N][N])

这说明白形参是接受的数组的值啊???

这是怎么回事?

这里不是按地址传递,定义void outarr(int a[N][N])表示的是按数组整个传递,并且数组做为参数传递有个特点,就是一定是按引用传递

知道什么是按引用传递吗?简单理解,就是在函数里面,对该参数的修改,会影响主函数中该参数的值

====================================================

2

在主函数中

数组的定义是这样的

int aa[N][N]

表示未知行和列

但初始化又是这样

int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};

这样能算对吗?

这里数组的定义不是未知行和列

我们语庋规则规定,数组定义,必须用明确定义行列的数目

其实这里的N不是一个变量,而已经变成一个数字了,看上面的定义:

#define N 4

这一句定义,等于告诉编译器,每逢碰到N,就把它换成4的意思

那么其实数组定义就是int aa[4][4]

=====================================================

3

第一个被调函数

void sort(int a[][N])

它里面省略的行,我知道,二维数组可以这么写,但,在这个被调函数中,要使用到行数啊,它不给出,后面,怎么计算呢?

这个程序中,行数N在前面已经定义了

在整个程序的过程中,N不是一个变量,而是表示数字4!!

第一章 程序设计的基本概念

第一节 C语言的发展历史与特点

第二节 程序与程序设计

第三节 算法与算法的描述

第四节 C语言的上机 *** 作

思考题与习题

第二章 C语言程序设计基础

第一节 C语言的程序结构

第二节 数据类型

第三节 运算符与表达式

思考题与习题

第三章 C程序控制结构

第一节 C程序的三种基本控制结构

第二节 顺序结构

第三节 选择结构

第四节 循环结构

思考题与习题

第四章 数组

第一节 数组与数组元素的概念

第二节 一维数组

第三节 二维数组及多维数组

第四节 字符串与字符数组

思考题与习题

第五章 指针

第一节 指针与指针变量的概念

第二节 指针变量的定义和引用

第三节 指针变量与数组

思考题与习题

第六章 函数

第一节 函数的定义

第二节 函数的嵌套调用

第三节 数组作为函数参数

第四节 指针与函数

第五节 变量的使用范围与存储类别

第六节 不同文件中的函数使用

思考题与习题

第七章 编译预处理

第一节 宏定义

第二节 文件包含

第三节 条件编译

思考题与题

第八章 结构体与共用体

第一节 结构体基础

第二节 结构体数组

第三节 结构体指针

第四节 链表

第五节 位段

第六节 共用体

第七节 枚举类型与自定义类型

思考题与习题

第九章 文件

第一节 文件概述

第二节 文件的打开与关闭

第三节 文件的读/写

第四节 文件的定位

思考题与习题

第十章 程序设计方法

第一节 程序设计的基本概念

第二节 结构化程序设计方法

第三节 程序效率

第四节 程序设计风格

思考题与习题

附录

附录A C语言实验

附录B 标准ABSII码表

附录C C语言中的关键字

附录D 运算符的优先级与结合性

很多关于整数的问题 我们可以用字符串来实现,简单些。这就是例子

#include "stdioh"

#include "stringh" // 包含 strlen()函数声明,求字符数组大小

void main()

{

char nums[20]; //用于接收数字

int i;

printf("input number:\n");

gets(nums);

for(i=strlen(nums)-1;i>=0;--i) //逆序输出

putchar(nums[i]);

putchar('\n');

}

还需完善,你自己写吧。编程一定要动手的 呵

#include <stdioh>

int main()

{

    int f;

    float l,s;

    while(1)

    {

        printf("\n输入限速值及所测车速:");

        scanf("%f%f",&l,&s);

        if(s-l<0)

            printf("未超速不处罚记%d分\n",f=0);

        else if((s-l)/l<02)

            printf("超速未到20%%记%d分\n",f=3);

        else if((s-l)/l>=02 && (s-l)/l<05)

            printf("超速20%%未到50%%记%d分\n",f=6);

        else if((s-l)/l>=05)

            printf("超速50%%及以上记%d分\n",f=12);

        printf("驾驶证剩余分数:%d\n",12-f);

    }

    return 0;

}

#include <stdioh>

int geti(char c);//获取字符对应下标

int main()

{

    int ia,ib;

    char a,b;

    printf("猜拳游戏:'V'表示剪刀,' S' 表示石头,'P'表示布\n");

    while(1)

    {

        printf("请输入玩家a的手势:");

        scanf("%c",&a);

        getchar();

        printf("请输入玩家b的手势:");

        scanf("%c",&b);

        getchar();

        ia=geti(a);

        ib=geti(b);

        if(ia==-1 || ib==-1)

        {

            printf("输入不符合规则,请重新输入!\n");

            continue;

        }

        if(ia-ib==1 || ia-ib==-2)

            printf("玩家a胜\n");

        else if(ia-ib==-1 || ia-ib==2)

            printf("玩家b胜\n");

        else

            printf("平局\n");

    }

    return 0;

}

int geti(char c)//获取字符对应下标

{

    char g[3]={'V','S','P'};//数组元素依次克前一个元素及被后一个元素克制

    int i=0;

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

        if(g[i]==c)

            return i;

    return -1;

}

下面是一个比较三个数的例子:

#include <stdioh>

int main()

{

int t,a,b,c;

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

if(a<b)

{

t=a,a=b,b=t;

}

if(a<c)

{

t=a,a=c,c=t;

}

if(b<c)

{

t=b, b=c, c=t;

}

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

return 0;

}

原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。

#include<stdioh>

#include<stdlibh>

#include<timeh>

int main(void)

{

int n,m;

int count=0;

printf("please enter the n:");

scanf("%d",&n);

srand((unsigned int)time(NULL) );

int i;

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

{

m=10+rand()%90;

printf(" %d ",m);

count++;

if(count%5==0)

{

printf("\n");

}

}

return 0;

}

以上就是关于C语言程序设计(12)全部的内容,包括:C语言程序设计(12)、c语言程序设计、关于c语言程序设计,在线等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9723974.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存