当前位置:编程学习 > C/C++ >>

此C++程序运行的结果为何不出来?

#include <stdio.h>
#include <stdlib.h>
int s(int*,int*,int*);   /*函数声明*/
void main()
{
 int a[10],b[10],c[10];
 int i=0,j,t;
 printf("plaese input ten number to a:");    /*提示输入,数组a赋值*/
 for(i=0;i<=9;i++)
    scanf("%d",&a[i]);
 printf("please input ten number to b:");    /*提示输入,数组b赋值*/
 for(j=0;j<=9;j++)
    scanf("%d",&b[j]);
 t=s(a,b,c);
 printf("the array c is:");
 for(i;i<=t;i++)
    printf("%d,",*(c+i));
 system("pause");
}

int s(int *a,int *b,int *c)
{
 int i,j,t=0;
 for(i=0;i<=9;i++)
    for(j=0;j<=9;j++)
       if(a[i]==b[j])
          {
           *(c+t)=b[j];
           t++;
          }
  return t;
}

 

运行后不出结果,我要的结果是打印数组c中的元素,这个程序是求a、b数组中的交集的,交集元素放在c数组。

答案:#include <stdio.h>
#include <stdlib.h>
int s(int*,int*,int*);   /*函数声明*/
void main()
{
 int a[10],b[10],c[10];
 int i=0,j,t;
 printf("plaese input ten number to a:");    /*提示输入,数组a赋值*/
 for(i=0;i<9;i++)                          //这里i < 9
    scanf("%d",&a[i]);
 printf("please input ten number to b:");    /*提示输入,数组b赋值*/
 for(j=0;j<9;j++)                         //这里j < 9
    scanf("%d",&b[j]);
 t=s(a,b,c);
 printf("the array c is:");
 for(i=0;i<=t;i++)                    //这里i = 0 ,你要是不写i = 0,i的值为9 ,怎么可能有结果的
    printf("%d,",*(c+i));
 system("pause");
}

int s(int *a,int *b,int *c)
{
 int i,j,t=0;
 for(i=0;i<9;i++)             //这里i < 9
    for(j=0;j<9;j++)            //这里j < 9
       if(a[i]==b[j])
          {
           *(c+t)=b[j];
           t++;
          }
  return t;
}


 

 for(i=0;i<t;i++)                    //这里i = 0 ,你要是不写i = 0,i的值为9 ,怎么可能有结果的
    printf("%d,",*(c+i));

忘了说了这里也要改成i < t,而不是i<=t,不然结果有错误的

for(i=0;i<=t;i++) //i在前面已经处理过了,
    printf("%d,",*(c+i));

#include <stdio.h>
#include <stdlib.h>
int s(int*,int*,int*);   /*函数声明*/
void main()
{
 int a[10],b[10],c[10];
 int i=0,j,t;
 printf("plaese input ten number to a:");    /*提示输入,数组a赋值*/
 for(i=0;i<=9;i++)
    scanf("%d",&a[i]);
 printf("please input ten number to b:");    /*提示输入,数组b赋值*/
 for(j=0;j<=9;j++)
    scanf("%d",&b[j]);
 t=s(a,b,c);
 printf("the array c is:");
 for(i;i<=t;i++)          //////////////////////这里改成for(i=0;i<=t;i++)  ,试试???我也没看出来啥地方的错
    printf("%d,",*(c+i)); 
 system("pause");
}

int s(int *a,int *b,int *c)
{
 int i,j,t=0;
 for(i=0;i<=9;i++)
    for(j=0;j<=9;j++)
       if(a[i]==b[j])
          {
           *(c+t)=b[j];
           t++;
          }
  return t;
}

#include <iostream>using namespace std;
int s(int*,int*,int*);int main(){  int a[10],b[10];  int i=0,j,t,x; printf("please input ten different numbers to a:"); for(i=0;i<=9;i++) {cin>>x;a[i]=x;} printf("please input ten different numbers to b:"); for(j=0;j<=9;j++) {cin>>x;b[j]=x;}cout<<"交集为"<<endl; for(i=0;i<10;i++) {for(j=0;j<10;j++)if(a[i]==b[j])cout<<a[i]<<" "; } return 0;}

上一个:C++中关于这个vector的一点小疑问
下一个:求C++程序代码:建立 一个复数类 Complex

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,