user-0 提问: 结构数组里的指针问题

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 前面不是给你回复了吗？你都没仔细看吗？我打字也很累的好不好？

user: user-0
content: 引用 13 楼 SuperDay的回复:*j是第一个元素，假设它等于10，*j+1是第一个元素+1，等于11，*j+2等于12 就是说，j这个数组，你只用了第一个元素，那么你定义这个数组做什么用呢？ 那怎么用这一个指针把[1]和[2]表示出来呢？

user: user-2
content: *j是第一个元素，假设它等于10，*j+1是第一个元素+1，等于11，*j+2等于12 就是说，j这个数组，你只用了第一个元素，那么你定义这个数组做什么用呢？

user: user-0
content: 引用 11 楼 SuperDay的回复:什么初始化，你语法都搞错了 但是第一组输入正确啊

user: user-2
content: 什么初始化，你语法都搞错了

user: user-0
content: 引用 8 楼 SuperDay的回复:*j+1 *j+2这种写法都是错的，应该是*(j+1) *(j+2)，或者写成j[1] j[2]更直观 应该是没有初始化吧？我试试

user: user-0
content: 引用 8 楼 SuperDay的回复:*j+1 *j+2这种写法都是错的，应该是*(j+1) *(j+2)，或者写成j[1] j[2]更直观 改了以后输入一组数据，答案正确，但是当输入两组数据时，第二组数据的结果错误而且跟第一组结果的相同，意思就是输入例题里面的两组，结果全是104

user: user-2
content: *j+1 *j+2这种写法都是错的，应该是*(j+1) *(j+2)，或者写成j[1] j[2]更直观

user: user-0
content: 引用 5 楼 自信男孩的回复:#include<stdio.h> #include<stdlib.h> #include<string.h> struct sb {     int num1[3];     int num2[3]; }hx[5]; int main() {     int cas(int a[],int b[]);     int n,i,k,*u,*o;     int sbs;     scanf("%d",&n);     for(i = 0;i < n;i++)     {         for(k = 0;k < 3;k++)         {             //scanf("%d%d",&hx[k].num1,&hx[k].num2);             scanf("%d%d",&hx[i].num1[k],&hx[i].num2[k]);         }         //u = &hx[0].num1;o = &hx[0].num2;         u = hx[0].num1;         o = hx[0].num2;         sbs = cas(u,o);         printf("%d",sbs);     }     return 0; } int cas(int a[],int b[]) {     int i,k,p,*j,*h;     j = a;h = b;     for(i = 0; ;i++)     {         for(k = 0; ; k++)         {             for(p = 0; ;p++)             {                 if(i % *j == *h&&k % (*j+1) == (*h+1)&&p % (*j+2) == (*h+2) )                 {                     if(i == *j&&*j == *h)                     {                         return *j;                     }                 }             }         }     } } 供参考~  #include<stdio.h> #include<stdlib.h> #include<string.h> struct sb {     int num1[3];     int num2[3]; }hx[3]; int main() {     int cas(int a[],int b[]);     int n,i,k,*u,*o;     int sbs;     scanf("%d",&n);     for(i = 0;i < n;i++)     {         for(k = 0;k < 3;k++)         {             scanf("%d%d",&hx[i].num1[k],&hx[i].num2[k]);         }         u = hx[0].num1;         o = hx[0].num2;         sbs = cas(u,o);         printf("%d\n",sbs);     }     return 0; } int cas(int a[],int b[]) {     int i,*j,*h;     j = a;h = b;     for(i = 0;i <1000;i++)     {         if((i % *j == *h)&&(i % (*j+1) == (*h+1))&&(i % (*j+2) == (*h+2)))         {         return i;         }     } }   这个是改了后的代码，但是输出不对，我感觉应该是函数里面的if错了

user: user-0
content: 引用 4 楼 SuperDay的回复:别叫大佬，对这个字眼很反感。另外，要学会怎么提问题，出错都有现象，请准确描述问题 #include<stdio.h> #include<stdlib.h> #include<string.h> struct sb {     int num1[3];     int num2[3]; }hx[3]; int main() {     int cas(int a[],int b[]);     int n,i,k,*u,*o;     int sbs;     scanf("%d",&n);     for(i = 0;i < n;i++)     {         for(k = 0;k < 3;k++)         {             scanf("%d%d",&hx[i].num1[k],&hx[i].num2[k]);         }         u = hx[0].num1;         o = hx[0].num2;         sbs = cas(u,o);         printf("%d\n",sbs);     }     return 0; } int cas(int a[],int b[]) {     int i,*j,*h;     j = a;h = b;     for(i = 0;i <1000;i++)     {         if((i % *j == *h)&&(i % (*j+1) == (*h+1))&&(i % (*j+2) == (*h+2)))         {         return i;         }     } }   这个是改了后的代码，但是输出不对，我感觉应该是函数里面的if错了

user: user-3
content: #include<stdio.h> #include<stdlib.h> #include<string.h> struct sb {     int num1[3];     int num2[3]; }hx[5]; int main() {     int cas(int a[],int b[]);     int n,i,k,*u,*o;     int sbs;     scanf("%d",&n);     for(i = 0;i < n;i++)     {         for(k = 0;k < 3;k++)         {             //scanf("%d%d",&hx[k].num1,&hx[k].num2);             scanf("%d%d",&hx[i].num1[k],&hx[i].num2[k]);         }         //u = &hx[0].num1;o = &hx[0].num2;         u = hx[0].num1;         o = hx[0].num2;         sbs = cas(u,o);         printf("%d",sbs);     }     return 0; } int cas(int a[],int b[]) {     int i,k,p,*j,*h;     j = a;h = b;     for(i = 0; ;i++)     {         for(k = 0; ; k++)         {             for(p = 0; ;p++)             {                 if(i % *j == *h&&k % (*j+1) == (*h+1)&&p % (*j+2) == (*h+2) )                 {                     if(i == *j&&*j == *h)                     {                         return *j;                     }                 }             }         }     } } 供参考~

user: user-2
content: 别叫大佬，对这个字眼很反感。另外，要学会怎么提问题，出错都有现象，请准确描述问题

user: user-0
content: 引用 2 楼 SuperDay的回复:num1 num2都是数组，不需要取地址操作，就是&符号 大佬，改了也不行，还是那样

user: user-2
content: num1 num2都是数组，不需要取地址操作，就是&符号

user: user-0
content: 请大佬解答！！！！！