原本写的是这样的:
#include<stdio.h> int main() { int a[4],i,j,k; for(i=0;i<4;i++) scanf("%d",&a[i]); for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=0;k<4;k++) { if(a[i]==a[j]||a[i]==a[k]||a[j]==a[k]) continue; printf("%d %d %d\n",a[i],a[j],a[k]); } return 0; }
思路是对的,不过提交后答案错误。
提交时的答案要与样例输出格式是一样的才能通过。
注意看样例,前6个没有第四个数,7~12没有第三个数,
13~18没有第二个数,19~24没有第一个数。
然后就改了改,把它当成三个数来输出,
copy了4个上面的嵌套循环,就改成下面这样了
#include<stdio.h> int main() { int a[4],i,j,k; for(i=0;i<4;i++) scanf("%d",&a[i]); for(i=0;i<3;i++) for(j=0;j<3;j++) for(k=0;k<3;k++) { if(a[i]==a[j]||a[i]==a[k]||a[j]==a[k]) continue; printf("%d %d %d\n",a[i],a[j],a[k]); } for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=0;k<4;k++) { if(a[i]==a[j]||a[i]==a[k]||a[j]==a[k]) continue; if(a[i]==a[2]||a[j]==a[2]||a[k]==a[2]) continue; printf("%d %d %d\n",a[i],a[j],a[k]); } for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=0;k<4;k++) { if(a[i]==a[j]||a[i]==a[k]||a[j]==a[k]) continue; if(a[i]==a[1]||a[j]==a[1]||a[k]==a[1]) continue; printf("%d %d %d\n",a[i],a[j],a[k]); } for(i=1;i<4;i++) for(j=1;j<4;j++) for(k=1;k<4;k++) { if(a[i]==a[j]||a[i]==a[k]||a[j]==a[k]) continue; printf("%d %d %d\n",a[i],a[j],a[k]); } return 0; }
注意事项:
提交时的答案要与样例输出格式是一样!注意顺序!!!
0.0分
4 人评分
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:1205 |
钟神赛车 (C语言代码)浏览:879 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题8.2 (Java代码)浏览:2269 |
C语言训练-最大数问题 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1447 |
Pascal三角 (C语言代码)格式错误浏览:520 |
简单的a+b (C语言代码)浏览:488 |
Pascal三角 (C语言代码)浏览:652 |
小吖白又白 2019-10-07 22:21:39 |
错的,它那个输出是要有顺序的e。要是学STL了可以用STL next_permutation直接排出来