文章目录
1、找出不是两个数组共有的元素
题目: 给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1
输出样例:
3 5 -15 6 4 1
代码1
#include<stdio.h>
int main()
{
int a,i,k,z,h=0,n,p;
scanf("%d",&a);
int s[a];
for(i=0;i<a;i++){scanf("%d",&s[i]);}
int b;
scanf("%d",&b);
int g[b];
for(i=0;i<b;i++){scanf("%d",&g[i]);}
for(i=0;i<a;i++){
z=0;
for(k=0;k<b;k++)
{
if(s[i]==g[k])
{
z=1;
break;
}
}
if(z==0)
{
p=0;
for(n=0;n<i;n++)
{
if(s[n]==s[i])
{
p=1;
break;
}
}
h++;
if(h==1 && p==0) printf("%d",s[i]);
if(h>1 && p==0) printf(" %d",s[i]);
}
}
for(i=0;i<b;i++)
{
z=0;
for(k=0;k<a;k++)
{
if(g[i]==s[k])
{
z=1;
break;
}
}
if(z==0)
{
p=0;
for(n=0;n<i;n++)
{
if(g[n]==g[i])
{
p=1;
break;
}
}
h++;
if(h==1 && p==0) printf("%d",g[i]);
if(h>1 && p==0) printf(" %d",g[i]);
}
}
return 0;
}
代码2
#include<stdio.h>
int main()
{
int m; //为End Of File的缩写,表示在操作系统中表示资料源无更多的资料可读取
while(scanf("%d",&m)!=EOF){
int a[20],i;
for(i=0;i=n) { //正常结束 a[i]和数组b没有值共有
c[k]=a[i]; //数组c记录 这个非共有值
k++;
}
}
for(i=0;i=m){
c[k]=b[i];
k++;
}
}
printf("%d",c[0]);
for(i=1;i=i)
printf(" %d",c[i]);
}
printf("\n");
}
return 0;
}
2、矩阵运算
题目: 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式: 输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式: 在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
代码
#include<stdio.h>
int main()
{
int i,j,n,b=0;
scanf("%d",&n);
int a[10][10]={0};
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);}
}
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++){
if(i+j!=n-1){
b=b+a[i][j];
}
}}
printf("%d\n",b);
return 0;
}
3、方阵循环右移
题目: 本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。
输入格式: 输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。
输出格式: 按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。
输入样例:
2 3
1 2 3
4 5 6
7 8 9
输出样例:
2 3 1
5 6 4
8 9 7
代码
#include<stdio.h>
int main()
{
int i,j,k,n,m,l;
scanf("%d",&m);
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(k=1;k<=m;k++){
for(i=0;i<n;i++){
l=a[i][n-1];
for(j=n-1;j>0;j--){
a[i][j]=a[i][j-1];
}
a[i][j]=l;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
标签:右移,输出,int,scanf,样例,C语言,Python123,printf,输入
From: https://blog.csdn.net/chat8052/article/details/140131555