neuq oj 1034: C基础-求同存异 C++

来源:互联网 发布:四柱八字网络中国 编辑:程序博客网 时间:2024/05/29 13:48

1034: C基础-求同存异

时间限制: 1 Sec  内存限制: 128 MB
提交: 173  解决: 96
[提交][状态][讨论版]

题目描述

输入两个数组(数组元素个数6和8),输出在两个数组中都出现的元素(如a[6]={2,3,4,5,6,7},b[8]={3,5,7,9,11,13,15,19},则输出357)。

输入

输出

样例输入

2 3 4 5 6 73 5 7 9 11 13 15 19

样例输出

357

代码

#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){int a[6]={0,0,0,0,0,0};int b[8]={0,0,0,0,0,0,0,0};int i,j;for(i=0;i<6;i++){cin>>a[i];}    for(j=0;j<8;j++){cin>>b[j];}for(i=0;i<6;i++){for(j=0;j<8;j++){if(a[i]==b[j]){cout<<a[i]<<endl;}}}return 0;}
体会:
1.一维数组定义
未知数组元素个数:int a[i];
已知数组元素个数:int a[6]={0,0,0,0,0,0};
2.一维数组初始化
for(i=0;i<6;i++){cin>>a[i];}
3.C++中“==”与“=”的区别
c++中=和==的区别:
=:是赋值,使值为=后的数。
==:是比较,是与==后的数进行比较,相等为真,如果不相等为假。
如:
a=3,意思是令a的值为3,
a==3,不会改变3的值,只是将a的值与3进行比较,如果a等于3,则a==3为真,如果a不等于3,则为假。


4.关于数组的知识点
转自http://www.blogbus.com/shijuanfeng-logs/172811838.html
数组知识点
1.  输入20个整数存入一数组,输出其中能被数组中其它元素整除的那些数组元素。
2.  输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。
3.  输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。
4.编程,将字符数组S2中的全部字符拷贝到字符数组S1中(不用strcpy函数)。

 //1.  输入20个整数存入一数组,输出其中能被数组中其它元素整除的那些数组元素。
 
    int array[20] = {0}; // 初始化为0
    for (int i=0; i<20; i++)
    {
        scanf( "%d", &(array[i]) );
    }
 
    printf("能被数组中其它元素整除的数组元素:\n");
    bool flag = TRUE;
    for (int i=0; i<20; i++)
    {
        flag = TRUE;
        for(int j=0; j<20; j++)
        {
            if ( array[j]<array[i] || array[j]%array[i] != 0 )
            {
                flag = FALSE;
                break;
            }
        }
 
        if (flag == TRUE)
        {
            printf( "%d\n", array[i] );
        }
    }
    
 
    //2.  输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素
     //(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。
   int array1[N] = {0};
   int array2[N] = {0};
   
   printf("输入第一个数组:");
   for (int i=0; i<N; i++)
   {
        scanf( "%d", &array1[i] );
   }
   printf("\n");
 
   printf("输入第二个数组:");
   for (int i=0; i<N; i++)
   {
       scanf( "%d", &array2[i] );
   }
    printf("\n");
 
   printf("两个数组中都出现的元素:");
   for (int i=0; i<N; i++)
   {
      for (int j=0; j<N; j++)
      {
          if (array1[i] == array2[j])
          {
              printf("%d  ", array1[i]);
          }
      }
   }
   printf("\n");
 
    //3.  输入两个数组(数组元素个数自定),输出在两个数组中不都出现的元素
    //(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、7、9、10、-1)。
 
   int array1[N] = {0};
   int array2[N] = {0};
   
   printf("输入第一个数组:");
   for (int i=0; i<N; i++)
   {
        scanf( "%d", &array1[i] );
   }
   printf("\n");
 
   printf("输入第二个数组:");
   for (int i=0; i<N; i++)
   {
       scanf( "%d", &array2[i] );
   }
    printf("\n");
 
   printf("两个数组中不都出现的元素:");
   bool flag1[N] = {FALSE};
   bool flag2[N] = {FALSE};
   for (int i=0; i<N; i++)
   {
      for (int j=0; j<N; j++)
      {
          if (array1[i] == array2[j])
          {
              flag1[i] = TRUE;
              flag2[j] = TRUE;
          }
      }
   }
 
   for (int i=0; i<N; i++)
   {
       if (flag1[i] == FALSE)
       {
           printf( "%d ", array1[i] );
       }
   }
 
   for (int i=0; i<N; i++)
   {
       if (flag2[i] == FALSE)
       {
           printf( "%d ", array2[i] );
       }
   }
 
   printf("\n");
 
    //4.编程,将字符数组S2中的全部字符拷贝到字符数组S1中(不用strcpy函数)。
    
    char S1[N] = "abcd";  //考虑一下如果是指针该怎么做
    char S2[N] = {0};
    
    for (int i=0; i<N; i++)
    {
        S2[i] = S1[i];
    }
 


0 0
原创粉丝点击