| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:菜鸟问C语言问题!着急!
只看楼主 加入收藏
胡庆华
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-12-30
结帖率:0
收藏
已结贴  问题点数:5 回复次数:4 
菜鸟问C语言问题!着急!
程序(1)是书本上的答案(运行过,准确),程序(2)是我根据书上的要求自己编写的程序,编译链接没有错误。为了追踪函数large的返回值,我程序(2)的main函数中申请了变量s。程序(1)
#include <stdio.h>
void main()
{
       int large(int x,int y);
       int a[10],b[10],i,n=0,m=0,k=0;
       printf("enter array a:\n");
       for(i=0;i<10;i++)
       scanf("%d",&a[i]);
       printf("\n");
       printf("enter array b:\n");
       for(i=0;i<10;i++)
       scanf ("%d",&b[i]);
       printf("\n");
       for(i=0;i<10;i++)
        {  if(large(a[i],b[i])==1)
           n=n+1;
       else
       if(large(a[i],b[i])==0)
           m=m+1;
           else
           k=k+1;
        }
printf("a[i]>b[i] %d times\na[i]=b[i] %d times\na[i]<b[i] %d times\n",n,m,k);
      if(n>k)
      printf("array a is larger than array b\n");
      else
      if(n<k)
      printf("array a is smaller than array b\n");
      else
      printf("array a is equal to array b\n");
}
large(int x,int y)
{  int flag;
   if(x>y)
   flag=1;
   else
   if(x<y)
   flag=-1;
   else
   flag=0;
   return(flag);
}

程序(2)
#include<stdio.h>
void main()
{
 int large(int x,int y);
 int i;
 int m,n;
 int s;
 int a[3];
 int b[3];
 printf("input shu zu A:");
 printf("\n");
 for(i=0;i<3;i++)
 {
  printf("a[%d]=",i);
  scanf("%d",&m);
 }
 printf("input shu zu B:");
 printf("\n");
 for(i=0;i<3;i++)
 {
  printf("b[%d]=",i);
  scanf("%d",&n);
 }
 m=0;
 n=0;
 for(i=0;i<3;i++)
 {
  s=large(a[i],b[i]);
  if(large(a[i],b[i])==1)
  m++;
  if(large(a[i],b[i])==0)
  n++;
 }
 printf("%d",m);
 printf("\n");
 printf("%d",n);
 printf("\n");
 if(m>n)
 {
  printf("shu zhu A da yu B");
  printf("\n");
 }
 if(m<n)
 {
  printf("shu zhu A xiao yu B");
  printf("\n");
 }
 if(m==n)
 {
  printf("xiang deng");
  printf("\n");
 }
}

int large(int x,int y)
{
 int z;
 if(x>y)
 z=1;
 if(x<y)
 z=0;
 if(x==y)
 z=2;
 return(z);
}
在运行过程中,我定a[0]=1;a[1]=1;a[2]=1;b[0]=1;b[1]=1;b[2]=1;
程序(2)的运行结果应该是先输出三次变量s的值,然后再输出变量m和n的值;最后输出数组a和数组b的大小。
按照我想得到的结果,应该是
                          2
                          2
                          2
                          0
                          0
xiang deng
实际得到的结果是
  2
                          0
                          0
                          0
                          2
shu zu a xiao yu shu zu b
后来我改变数组a和数组b的值,发现结果都如上实际结果!心情沉重啊!

搜索更多相关主题的帖子: C语言 
2009-12-30 13:52
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:1 
for(i=0;i<3;i++)
{
  printf("a[%d]=",i);
  scanf("%d",&m);//这个不是&m,而是&a[i]
}
printf("input shu zu B:");
printf("\n");
for(i=0;i<3;i++)
{
  printf("b[%d]=",i);
  scanf("%d",&n);//这个是b[i]
}
2009-12-30 15:26
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:1 
无语的题目··
楼主按着书本的改不要随意篡改哦····
2009-12-30 15:48
胡庆华
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-12-30
收藏
得分:0 
谢谢各位大侠,明白了,小弟菜鸟,刚开始学!
2009-12-31 13:06
玉玫瑰
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2009-12-31
收藏
得分:1 
学习了!!!
2009-12-31 17:07
快速回复:菜鸟问C语言问题!着急!
数据加载中...
 
   



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

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