永发信息网

C语言程序纠错

答案:4  悬赏:60  手机版
解决时间 2021-08-15 21:41
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-08-14 20:51

#include<stdio.h>
void main()
{
 int large(int x,int y);
 int a[10],b[10],i=0,m=0,n=0,k=0;
    printf("enter array a:");
 for(;i<10;i++)
  scanf("%d",&a[i]);
 printf("\n");
 printf("enter array b:");
 for(;i<10;i++)
  scanf("%d",&b[i]);
 printf("\n");
    for(;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[10]>b[10]%dtimes\na[10]<b[10]%dtimes\na[10]=b[10]%dtimes\n",n,k,m);
 if(n>k) printf("a[10] is larger than b[10]\n");
  else if(n<k) printf("a[10] is smaller than b[10]\n");
   else printf("a[10] is equal to b[10]\n");
}
int large(int x,int y)
{
 int flag;
 if(x>y) flag=1;
 else if(x<y) flag=-1;
 else flag=0;
 return flag;
}

主要问题是 b 没法输入

最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-08-14 21:00

    #include<stdio.h>
void main()
{
 int large(int x,int y);
 int a[10],b[10],i=0,m=0,n=0,k=0;
    printf("enter array a:");
 for(i=0;i<10;i++)
  scanf("%d",&a[i]);
 printf("\n");
 printf("enter array b:");
 for(i=0;i<10;i++)
  scanf("%d",&b[i]);
 printf("\n");
    for(;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[10]>b[10]%dtimes\na[10]<b[10]%dtimes\na[10]=b[10]%dtimes\n",n,k,m);
 if(n>k) printf("a[10] is larger than b[10]\n");
  else if(n<k) printf("a[10] is smaller than b[10]\n");
   else printf("a[10] is equal to b[10]\n");
}
int large(int x,int y)
{
 int flag;
 if(x>y) flag=1;
 else if(x<y) flag=-1;
 else flag=0;
 return flag;
}


i的问题,输入A数组的时候  执行for(;i<10;i++)
当执行完毕有  i=10了 所以就直接跳出循环了


解决方法:更改变量或者我写的以上方法


注:编程定义变量的时候,最好用一些可读性的英文表示.希望采纳,打几个字也不容易的

全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-08-15 01:16
在for循环之前将i赋初值0,编程for(i=0;i<10;i++)scanf("%d",&b[i]);当然所有for都改成这样,因为你每次循环后i的值被改变了
  • 2楼网友:神的生死簿
  • 2021-08-14 23:41
 for(;i<10;i++) // 这里加入i=0 前面输入a[]的时候因为申明的时候初始化了   scanf("%d",&b[i]);
  • 3楼网友:独行浪子会拥风
  • 2021-08-14 22:23

#include<stdio.h> void main() {  int large(int x,int y);  int a[10],b[10],i=0,m=0,n=0,k=0;     printf("enter array a:");  for(;i<10;i++)   scanf("%d",&a[i]);  printf("\n");  printf("enter array b:");  for(i=0;i<10;i++)//不加i=0,i就为10 ,就不循环   scanf("%d",&b[i]);  printf("\n");     for(;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[10]>b[10]%dtimes\na[10]<b[10]%dtimes\na[10]=b[10]%dtimes\n",n,k,m);  if(n>k) printf("a[10] is larger than b[10]\n");   else if(n<k) printf("a[10] is smaller than b[10]\n");    else printf("a[10] is equal to b[10]\n"); } int large(int x,int y) {  int flag;  if(x>y) flag=1;  else if(x<y) flag=-1;  else flag=0;  return flag; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯