文档库 最新最全的文档下载
当前位置:文档库 › C语言编程题

C语言编程题

C语言编程题
C语言编程题

C语言编程题,10个元素,让其首尾相倒,主函数输入地址,调用子函数

悬赏分:5|解决时间:2009-3-29 15:03 |提问者:小大魔术师

急,各位哥哥姐姐们,帮帮忙啦,谢谢

最佳答案

//---------------------------------------------------------------------------

#include

typedef int datatype;

void rev(datatype *a,int len)

{

int i;

datatype temp;

for (i = 0; i

temp=a[i];

a[i]=a[len-1-i];

a[len-1-i]=temp;

}

}

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

{

int i;

datatype b[10]={1,2,3,4,5,6,7,8,9,10};

rev(b,10);

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

printf("%d\n",b[i]);

}

return 0;

实验六函数与多文件编程

C语言 2008-12-06 13:32:41 阅读119 评论1字号:大中小订阅

【实验目的】

1、掌握函数类型和参数的使用方法;

2、了解头文件的作用及编制方法。

【实验任务】

1、编写分配一块内存的程序init。

2、编写完成读进10个双精确度值的函数readin。该函数能将这些数据存入由init函数申请的存储块中。

3、编写数值求积的通用函数product。

4、编写一个sort函数,用于将存储块中的的数据读入数组a中,然后将a中的数据按由小到大的顺序排序。

5、在主程序中调用这些函数(它们所在文件如下表所示)。并输出:第一次申请的内存块中的内容、数组排序后的内容。

sort

product

readin

init

声明

main

sort.c

product.c

readin.c

init.c

s4.h

s4.c

【操作步骤】

一、主菜单的设计:

二、readin函数的实现:

三、product函数的实现:

四、sort函数的实现:

【实验指导】

1、s4.h。预处理和函数及公共变量的声明。

2、init.c。实现init函数的功能。由于从键盘读取的数据需要存入申请的内存块中,因此,这个函数的返回值应为double类型的指针。

3、readin.c。主要定义readin函数读取10个double类型的数据。可以将init 函数的返回值作为该函数的形参。由于它是一个double类型的指针,这样,直接通过参数获得数据,该函数不需要返回值,可以声明为void类型。

4、product.c。主要定义product函数,用于返回存储块中的所有数据的积。它需要三个参数:存储区的地址、数据量、能够返回积的double类型的指针。函数本身无需返回值。

5、sort.c。主要定义sort函数,用于数组排序。也可以通过指针作为函数形参而无需函数返回值。排序方法有:直接选择排序、直接插入排序或冒泡排序、归并排序等。

6、注意主程序s4.c中必须包含s4.h文件。

7、如果A.c文件中定义了一个全局变量(如:int myc;),而B.c文件中需要使用该变量,则在B文件中需要声明(如:extern int myc;)。

***参考源代码:

#include "s4.h"

const int SIZE=10;

void iniscn()

{ clrscr();gotoxy(1,4);

cputs("操作提示:d-数据录入;c-结果输出;x-退出。"); gotoxy(1,6);

}

void main(void)

{ double *x,*y,res,a[10]={0.0};

int i,c,flag=0;

iniscn();

while(1)

{ c=(int)getch();

switch(c)

{ case 120:exit(0); /*按键x则退出*/

case 100: /*按键d请求数据录入*/

{ if((x=init(SIZE))==NULL){puts("申请内存失败,操作取消!");return;}

iniscn();readin(x);flag=1;break;}

case 99:/*按键c输出结果*/

{ if(flag==0){puts("请先录入数据!");break;}

product(x,&res,SIZE);

printf("以上数据的积为:%10.2f\n\tx:\n",res);

for(i=0;i

{if(i==5)printf("\n");

printf("%10.2f",*(x+i));}

printf("\n\t递增排序结果:\n");

sort(x,a,SIZE);

for(i=0;i

{if(i==5)printf("\n");printf("%10.2f",*(a+i));}

printf("\n\t排序数据乘10后反序输出结果:\n");

if((y=init(SIZE))==NULL){puts("申请内存失败,操作取消!");return;}

for(i=SIZE-1;i>=0;i--)

{*(y+SIZE-i-1)=a[i]*10;

if(i==4)printf("\n");

printf("%10.2f",*(y+SIZE-i-1));}

free(y);free(x);flag=0;

}

}

}

}

相关文档