c语言3级,想考3级,C语言是必过关!~

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

难的话可以学。

但是如何着手?

先把符号意思弄懂?那么多符号很容易混淆?

但有的符号不能用数学解释.

例如:

a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的

他想表达的是什么意思,c 当然可以等于a,为什么c=a 后 a=b 了呢?当然a=b 成立之后 那么后面的 b=c 自然就成立了,3怎么可能等于5?费解,上段到底想表达什么意思?

还有道例题:

已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。

注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。

#include 

#include 

#define  MAXNUM 200

int  number[MAXNUM];

int  totNum = 0;/* 文件IN.dat中共有的正整数个数 */

int  totCnt = 0;/* 符合条件的正整数的个数 */

double  totAve = 0.0;/* 平均值 */

int ReadDat(void);

void writeDat(void);

void CalValue(void)

{

}

void main()

{int  i;

for (i=0; i

number[i] = 0;

if (ReadDat())

{printf("数据文件IN.dat不能打开!\007\n");

return;

}

CalValue();

printf("文件IN.dat中共有的正整数个数=%d个\n", totNum);

printf("符合条件的正整数的个数=%d个\n", totCnt);

printf("平均值=%.2f\n", totAve);

writeDat();

}

int ReadDat(void)

{FILE  *fp;

int  i = 0;

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

return 1;

while (!feof(fp))

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

fclose(fp);

return 0;

}

void writeDat(void)

{FILE  *fp;

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

fprintf(fp, "%d\n%d\n%6.2f\n", totNum, totCnt, totAve);

fclose(fp);

}

哪个高人请赐解,不胜感激。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值