标题:为啥总是提示“运行错误”
只看楼主
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
结帖率:91.67%
已结贴  问题点数:20 回复次数:10 
为啥总是提示“运行错误”
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#define N 5
void putdata(int* a)
{   int i;
      for(i=0;i<N;i++)
          a[i]=rand()%10;
      for(i=0;i<N;i++)
          printf("%d",a[i]);
       Sleep(3000);
      system("cls");/*三秒后清屏*/
}
void getdata(int*b)
{ int i=0;
    do
    { scanf("%d",b[i]);
          i++;
    }
    while(isdigit(b[i])&&i<5);/*当i是整数并且i小于5*/

}
int comdata(int*a,int*b)
{  int i,count=0;
     for(i=0;i<N;i++)
      {if(a[i]=b[i])
         count++;
      }
         return count;
}
void getlevel(int n)
{    printf("put the result\n");
    switch(n/N*10)
    { case 10:
      case 9 :printf("Great\n");break;
      case 8 :printf("Very good\n");break;
      case 7 :printf("Good\n");break;
      default:printf("Come on\n");break;
    }
}
void main(void)
{int a[N],i,b[N],n;
     printf("Put the original number\n");
     putdata(a);
     getdata(b);
     n=comdata(a,b);
     getlevel(n);
}
搜索更多相关主题的帖子: void cls include system count 
2012-03-04 21:58
leihangwang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-4
得分:0 
其实一般要写注释的
2012-03-04 22:33
与我有关
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-03-04 22:53
爱尔兰。
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-4
得分:0 
我也可以運行
2012-03-04 23:02
星火gavin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:170
注 册:2011-11-5
得分:5 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#define N 5
void putdata(int* a)
{   int i;
      for(i=0;i<N;i++)
          a[i]=rand()%10;
      for(i=0;i<N;i++)
          printf("%d",a[i]);
       Sleep(3000);
      system("cls");/*三秒后清屏*/
}
void getdata(int*b)
{ int i=0;
    do
    { scanf("%d",&b[i]);                                      //你好像少了个符号
          i++;
    }
    while(b[i]&&i<5);/*当i是整数并且i小于5*/                 

}
int comdata(int*a,int*b)
{  int i,count=0;
     for(i=0;i<N;i++)
      {if(a[i]=b[i])
         count++;
      }
         return count;
}
void getlevel(int n)
{    printf("put the result\n");
    switch(n/N*10)
    { case 10:
      case 9 :printf("Great\n");break;
      case 8 :printf("Very good\n");break;
      case 7 :printf("Good\n");break;
      default:printf("Come on\n");break;
    }
}
int main()
{
    int a[N],i,b[N],n;
     printf("Put the original number\n");
     putdata(a);
     getdata(b);
     n=comdata(a,b);
     getlevel(n);
}
没做啥该进,编译器不同主函数我用int,C-free5.0如上就好使啦
2012-03-04 23:22
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:15 
i = 0;
do
    { scanf("%d",&b[i]);   // 这里要加个&
          i++;
    }
    while(isdigit(b[i])&&i<5);/*当i是整数并且i小于5*/

但是加完&后仍然有问题,scanf("%d",&b[i]);  输入的是b[0]的值,显然b[1]还是不预知的东西,这时你马上i++;那么while(isdigit(b[i])&&i<5); 中是用的是b[1]的值进行判断,就会系统报错。
可以这么写
程序代码:
int i=0;
    do
    {
       scanf("%d",&b[i]);        
    }while(isdigit(b[i++])&&i<5);/*当i是整数并且i小于5*/


梅尚程荀
马谭杨奚







                                                       
2012-03-05 10:16
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
得分:0 
回复 6楼 有容就大
恩?我的怎么还是运行错误啊?请问
2012-03-05 12:58
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
得分:0 
回复 6楼 有容就大
这段程序中,不知道为啥,随机数总是相同的;
我的随机数是19047,而当我输入14079时,结果仍是“great”;
还有编译了多次,但只有几次能得出正确结果,这是编译器的问题么?我的是VC6.0)
谢谢啊
2012-03-05 13:32
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
仔细的看了一遍发现你的程序问题蛮多

a[i]=rand()%10; 这样得到的随机数是一个固定值

isdigit(b[i])是判断一个字符是否为数字字符,是返回非0, 不是返回 0. 而b[]数组元素是int型数值,张冠李戴了。

for(i=0;i<N;i++)
      {if(a[i]=b[i]) // 这样的判断条件会有什么结果?
         count++;
      }

 switch(n/N*10)  // 这样的选择方式会有什么结果?



梅尚程荀
马谭杨奚







                                                       
2012-03-05 13:40
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
得分:0 
回复 2楼 leihangwang
嗯,谢谢提醒
2012-03-05 14:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362219-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.173564 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved