请写一个C程序

请写一个C程序,第1张

本题一个完整的c程序如下,win-tc和Dev-c++下已调试通过.

#include<stdio.h>

#include<conio.h>

int a[1000],b/*设定数据不超过1000个*/

long sum

main()

{

readDat()

writeDat()

printf("\n Press any key to quit...")

getch()

}

readDat()

{

FILE *fp

int i=0

fp=fopen("IN.dat","r")

while(!feof(fp)) /*不超过1000个,有多长读多长*/

fscanf(fp,"%d",&a[i++])

b=i

for(i=0i<bi++)

sum+=a[i]

fclose(fp)

}

writeDat()

{

FILE *fp

int i

clrscr()

fp=fopen("OUT.dat","w")

printf("Average of %d numbers is:\n%10.2f",b,(float)sum/b)

fprintf(fp,"%5.2f",(float)sum/b)

fclose(fp)

}

程序计算结果是:200 5158.00

这里设文件IN.dat内容为200个整数:

1001 2001 1012 1034 1067 1111 1166 1232 1309 1397

1496 1506 1527 1559 1602 1656 1721 1797 1884 1982

2091 2111 2142 2184 2237 2301 2376 2462 2559 2667

2786 2816 2857 2909 2972 3046 3131 3227 3334 3452

3581 3621 3672 3734 3807 3891 3986 4092 4209 4337

4476 4526 4587 4659 4742 4836 4941 5057 5184 5322

5471 5531 5602 5684 5777 5881 5996 6122 6259 6407

6566 6636 6717 6809 6912 7026 7151 7287 7434 7592

7761 7841 7932 8034 8147 8271 8406 8552 8709 8877

9056 9146 9247 9359 9482 9616 9761 9917 8084 8262

8451 8551 8662 8784 8917 1061 1216 1382 1559 1747

1946 2056 2177 2309 2452 2606 2771 2947 3134 3332

3541 3661 3792 3934 4087 4251 4426 4612 4809 5017

5236 5366 5507 5659 5822 5996 6181 6377 6584 6802

7031 7171 7322 7484 7657 7841 8036 8242 8459 8687

8926 9076 9237 9409 9592 9786 9991 8207 8434 8672

8921 1081 1252 1434 1627 1831 2046 2272 2509 2757

3016 3186 3367 3559 3762 3976 4201 4437 4684 4942

5211 5391 5582 5784 5997 6221 6456 6702 6959 7227

7506 7696 7897 8109 8332 8566 8811 9067 9334 9612

本题的一个完整的c程序如下,其中函数为num()

可以处理负数,-20.50四舍五入后为-21,-100.49四舍五入后为-100,10.50四舍五入后为11.程序在Dev-c++下运行通过且结果正确。

/* 请写一个简单的函数,不是main, 由一个任意长度的double的数组,return另一个相同长度的数组,由int值组成,所有值由原来的double数四舍五入小数部分得来。 */

#include <stdio.h>

#include <conio.h>

int *num()

main()

{ int i,n,*q,*s

double *p

printf("Please input the number of digits:\n")

scanf("%d",&n)

p=(double *)malloc(n*sizeof(double))

q=(int *)malloc(n*sizeof(int))

printf("Please input %d digits one by one:\n",n)

for(i=0i<ni++)

scanf("%lf",p+i)

s=num(p,q,n)

printf("The array you want are:\n")

for(i=0i<ni++)

printf("%6d",*(s+i))

free(p)

free(q)

getch()

}

int *num(double *p,int *q,int n)

{ int i

for(i=0i<ni++)

{

if(p[i]>=0)

{ if((int)(p[i]+0.5)>(int)p[i])

q[i]=(int)p[i]+1

else

q[i]=(int)p[i]

}

else

{ if((int)(p[i]+0.5)>(int)p[i])

q[i]=(int)p[i]

else

q[i]=(int)p[i]-1

}

}

return q

}


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

原文地址: http://outofmemory.cn/yw/11846558.html

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

发表评论

登录后才能评论

评论列表(0条)

保存