全部问题 > 当前问题

做编程题的时候说要用dat文件上传,要下什么能打开dat文件啊,好麻烦,就不能一直用c++吗

做编程题的时候说要用dat文件上传,要下什么能打开dat文件啊,好麻烦,就不能一直用c++吗

终相守 ° 2016-2-16 23:14:18

共 20 个回答

嘿嘿大人 2016-2-16 23:18:23

在群里我写了一个文件,你可以下载看看,那个out文件是自己生成的,不需要打开,直接点击上传就可以了,具体生成方法再群文件里面写的很详细

blob.png

终相守 ° 2016-2-16 23:23:15

回复 嘿嘿大人:谢谢,那麻烦你再帮我看看以下哪里错了

#include <stdio.h>

float fun ( float  h )

{

  if(1000*h%10>=5);

  {

   h=(100*h+1)/100;

  }

  else

  {

   h=100*h/100;

  }

  return h;

}


main( )

{   float  a;void NONO ();

    printf ("Enter  a:  "); scanf ( "%f", &a );

    printf ( "The original data is :   " );

    printf ( "%f \n\n", a );

    printf ( "The result :  %f\n", fun ( a ) );

    NONO( );

}


void NONO ()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

    输出数据,关闭文件。 */

  int i ;

  float a ;

  FILE *rf, *wf ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

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

    fscanf(rf, "%f", &a) ;

    fprintf(wf, "%f\n", fun(a)) ;

  }

  fclose(rf) ;

  fclose(wf) ;

}


终相守 ° 2016-2-16 23:23:30

报了一个错误

嘿嘿大人 2016-2-16 23:26:09

回复 终相守 °:报错是什么?

终相守 ° 2016-2-16 23:27:27

它说传out.dat。是在c++里运行完程序,out.dat就自动生成吗?

终相守 ° 2016-2-16 23:28:03

--------------------Configuration: prog1 - Win32 Debug--------------------

Compiling...

prog1.c

c:\users\administrator\desktop\prog1.c(4) : error C2296: '%' : illegal, left operand has type 'float '

c:\users\administrator\desktop\prog1.c(8) : error C2181: illegal else without matching if

执行 cl.exe 时出错.


终相守 ° 2016-2-16 23:31:26

第二个错误说我else没匹配if


最佳答案

嘿嘿大人 2016-2-16 23:35:33

回复 终相守 °:我这么说不知道你懂不懂,你知道余数是怎么产生的不?余数必须整数和整数相除,然后得到的一个整数余一个整数,而你这里的h是一个浮点类型也就是小数类型,我这么说你应该知道哪里错了吧

终相守 ° 2016-2-16 23:38:30

回复 嘿嘿大人:明白,想不出来应该咋改了。。

终相守 ° 2016-2-16 23:41:50

怎么只取小数点后三位啊,,,啊啊啊。。

嘿嘿大人 2016-2-16 23:43:26

回复 终相守 °:加一个强制类型转化不就行咯,  if((int)(1000*h)%10>=5);就像这样

终相守 ° 2016-2-16 23:45:24

#include <stdio.h>

float fun ( float  h )

{

   if((10000*h/10-1000*h/10*10)>=5);

  {

   h=(100*h+1)/100;

  }

   else

  {

   h=100*h/100;

  }

  return h;

}


main( )

{   float  a;void NONO ();

    printf ("Enter  a:  "); scanf ( "%f", &a );

    printf ( "The original data is :   " );

    printf ( "%f \n\n", a );

    printf ( "The result :  %f\n", fun ( a ) );

    NONO( );

}


void NONO ()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

    输出数据,关闭文件。 */

  int i ;

  float a ;

  FILE *rf, *wf ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

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

    fscanf(rf, "%f", &a) ;

    fprintf(wf, "%f\n", fun(a)) ;

  }

  fclose(rf) ;

  fclose(wf) ;

}


终相守 ° 2016-2-16 23:45:59

改过来了,现在还报错,就剩下一个错误了


终相守 ° 2016-2-16 23:46:22

--------------------Configuration: prog1 - Win32 Debug--------------------

Compiling...

prog1.c

C:\Users\Administrator\Desktop\prog1.c(8) : error C2181: illegal else without matching if

执行 cl.exe 时出错.


prog1.obj - 1 error(s), 0 warning(s)


终相守 ° 2016-2-16 23:46:37

就剩下这个错误了


终相守 ° 2016-2-16 23:46:59

麻烦您再帮我看看吧

终相守 ° 2016-2-16 23:47:49

现在还是说我else没有if匹配

嘿嘿大人 2016-2-16 23:54:59

回复 终相守 °blob.pngif后面不要分号,如果加了分号代表作用域为空

终相守 ° 2016-2-17 00:00:05

哦哦,谢谢,辛苦了

嘿嘿大人 2016-2-17 09:39:17

回复 终相守 °:不谢,加油,嘿嘿

问题来自: 编程题真题