鱼C论坛

 找回密码
 立即注册
查看: 3339|回复: 13

哪里错误了啊,运行显示错误,请大师修改

[复制链接]
头像被屏蔽
发表于 2011-9-22 13:18:44 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 13:28:13 | 显示全部楼层
你的 输入语句  scanf ("%d",a); 没有取地址符  正确的是 scanf ("%d", &a);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 14:03:42 | 显示全部楼层
这句scanf("%d",a);把这个改成scanf("%d",&a);还有你既然让别人输入a的值~干嘛一开始还把0赋给a呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 20:40:32 | 显示全部楼层
for (;a>=1 || a<=4;)
这里的条件有误吧。输入 a < 1 || a > 4,提示输入错误吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 20:45:59 | 显示全部楼层
#include<stdio.h>
main ()
{
int a;
printf("功能列表\n");
printf("输入1微粒数与物质的量计算\n");
printf("输入2质量与物质的量计算\n");
printf("输入3气体体积与物质的量计算\n");
printf("输入4溶液浓度与物质的量计算\n");
printf("请输入操作代码 ");
scanf("%d",&a);
  for (;(a < 1) || (a > 4);)
  {
  printf("输入的是错误操作代码\n");
  printf("请重新输入操作代码 ");
  scanf("%d",&a);
  }
  switch(a){
  case 1: printf("微粒数与物质的量计算");
   break;
  case 2: printf("质量与物质的量计算");
   break;
  case 3: printf("气体体积与物质的量计算");
   break;
  case 4: printf("溶液浓度与物质的量计算");
   break;
  default : printf("请选择合法操作");
  }
  
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 21:00:15 | 显示全部楼层
1.for循环用do-while替换比较好。
2.scanf函数的a要取地址,即:scanf("%d",&a);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
 楼主| 发表于 2011-9-22 22:17:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 22:33:03 | 显示全部楼层
代码贴出我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 22:48:30 | 显示全部楼层
本帖最后由 ZPCG 于 2011-9-22 22:51 编辑
djpp123 发表于 2011-9-22 22:17
取a地址,
还是运行错误


错误1: int a=0;既然要求用户输入a值,干嘛要初始化他的值为0;
错误2: scanf("%d",a);改成取a地址,&a,你懂得!
错误3: for (;a>=1 || a<=4;),这一句,你打入1~4的任何数都是提示错的,应该改为:  a<1 || a>4;
错误4: case 1: printf("微粒数与物质的量计算");
       scanf("%d",a);

这句后面加个scanf("%d",a);干嘛?
顺便说一句,你刚发这个贴的时候就想回了,但一直在犹豫,因为你的标题中指定请大师修改,我整整踌躇了近九个小时,不敢回答,现在实在忍不住了,所以鼓起勇气回了个贴,不好意思,没达到你标题要求的回答资格也回贴修改了,请千万见谅!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-22 23:41:09 | 显示全部楼层
这个程序应该这样写,能处理非法的输入,任何字符,任何字符串,代码调试通过。
  1. #include <windows.h>
  2. #include<stdio.h>

  3. int main (void)
  4. {
  5.         char a[MAX_PATH];
  6.         int num = 0;

  7.         memset(a,0x00000000,sizeof(a));

  8.         printf("功能列表\n");
  9.         printf("输入1微粒数与物质的量计算\n");
  10.         printf("输入2质量与物质的量计算\n");
  11.         printf("输入3气体体积与物质的量计算\n");
  12.         printf("输入4溶液浓度与物质的量计算\n");
  13.         printf("请输入操作代码:");

  14. loop:       
  15.         scanf("%s",a);
  16.         num = atoi(a);

  17.         while( (num < 1) || (num > 4) )
  18.         {
  19.                 printf("输入的是错误操作代码\n");
  20.                 printf("请重新输入操作代码:");
  21.                 goto loop;
  22.         }

  23.         switch(num)
  24.         {
  25.         case 1: printf("微粒数与物质的量计算\n");
  26.                 break;
  27.         case 2: printf("质量与物质的量计算\n");
  28.                 break;
  29.         case 3: printf("气体体积与物质的量计算\n");
  30.                 break;
  31.         case 4: printf("溶液浓度与物质的量计算\n");
  32.                 break;
  33.         default : printf("请选择合法操作\n");
  34.                 break;
  35.         }

  36.         return 0;
  37. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-23 20:42:05 | 显示全部楼层
上一个程序由于用了scanf函数,经测试会出现问题,我又改了一下代码,这个代码是最后的版本,你将里面printf中打印的字符串换成你需要的就可以了,注释我没写,有问题可以提问。
  1. #define SUCCESS 1
  2. #define FAILURE 0
  3. typedef int BOOL;
  4. #include <windows.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <stdlib.h>

  8. int count = 0;

  9. void messageBox();
  10. void check(char string[]);
  11. BOOL fun(char string[]);

  12. int main(void)
  13. {
  14.         char temp[MAX_PATH];
  15.        
  16.         memset(temp,0x00000000,sizeof(temp));
  17.         while(1)
  18.         {
  19.                 messageBox();
  20.                 gets(temp);
  21.                 check(temp);
  22.                 if(fun(temp))
  23.                 {
  24.                         return SUCCESS;
  25.                 }
  26.         }
  27.         return 0;
  28. }

  29. void messageBox()
  30. {
  31.         printf("This is a Connection Database Application.\n");
  32.         printf("==========================================\n");
  33.         printf("Please chooes the operate.\n\n");
  34.         printf("1:Connect SQL Server.\n");
  35.         printf("2:Connect MySQL.\n");
  36.         printf("3:Connect Oracle.\n");
  37.         printf("4:Connect DB2.\n\n");
  38.         printf("Please input a number:");
  39. }

  40. void check(char string[])
  41. {
  42.         if( !(0 == strcmp(string,"1") || 0 == strcmp(string,"2") || 0 == strcmp

  43. (string,"3") || 0 == strcmp(string,"4")) )
  44.         {
  45.                 printf("input error!\n");
  46.                 count++;
  47.                 #ifdef DEBUG
  48.                 printf("count = %d\n\n", count);
  49.                 #endif
  50.                 if(count == 3)
  51.                 {
  52.                         printf("Times is more than 3, Application End!\n\n");
  53.                         exit (0);
  54.                 }
  55.         }
  56. }

  57. BOOL fun(char string[])
  58. {
  59.         if( 1 == strlen(string))
  60.         {
  61.                 switch(atoi(string))
  62.                 {
  63.                 case 1: printf("Connection Starting:(SQL Server)...\n");
  64.                         printf("Please wait...\n");
  65.                         return SUCCESS;
  66.                 case 2: printf("Connection Starting:(MySQL)...\n");
  67.                         printf("Please wait...\n");
  68.                         return SUCCESS;
  69.                 case 3: printf("Connection Starting:(Oracle)...\n");
  70.                         printf("Please wait...\n");
  71.                         return SUCCESS;
  72.                 case 4: printf("Connection Starting:(DB2)...\n");
  73.                         printf("Please wait...\n");
  74.                         return SUCCESS;
  75.                 default:
  76.                         break;
  77.                 }
  78.         }
  79.         return FAILURE;
  80. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
 楼主| 发表于 2011-9-25 11:32:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-25 11:48:07 | 显示全部楼层
for (;a>=1 || a<=4;)
这里的条件有误吧。输入 a < 1 || a > 4,提示输入错误吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-9-25 12:50:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-27 00:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表