//两个数组 //找出相同的数字并进行输出 //为什么没有输出?

//两个数组
//找出相同的数字并进行输出
//为什么没有输出?


#include
         int main()
         {

             int a[5] = { 1,2,3,4,5 };
             int b[5] = { 3,6,8,9,5 };
             int c[5] = { 2,4,6,8,9 };
             int p[5];
             int m[5];//如果不初始化,下标不为0
             int i = 0, j = 0, k = 0, n = 0, q = 0;
             for (i = 0; i < 5; i++)
             {
                 for (j = 0; j < 5; j++)
                 {
                     if (a[i] == b[j])
                     {
                         for (n = 0; n < 5; n++)
                         {
                             m[n] = a[i];
                         }
                     }
                 }

             }
             for (k = 0; k < 5; k++)
             {
                 if (c[k] == m[n])
                 {
                     for (q = 0; q < 5; q++)
                     {
                         p[q] = c[k];

                     }
                     printf("%d", q);
                 }
             }

         }

因为你在循环给数组m添加元素时 (m[n] = a[i])添加的元素都是重复的,运行后数组m的元素都为5,不满足 if (c[k] == m[n])条件所以不执行printf

你能把原题发出来吗??你这代码,我不明白你想表达什么

你的思路先将比较数组a,b,将数组a,b相同的元素赋值给数组m,然后再将数组m,k比较,用q记录m和k相同的元素个数,如果有相同的就打印q,因为数组mk没有相同元素,所以你的输出语句不会被执行