此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