Python123第七章答案(自写,仅供参考) By:肇院伟烨
前言
1、代码自己写的,不是标准答案,仅供参考。
2、建议看懂后自己另外写而不是复制粘贴。
3、点击目录可以转跳
文章目录
第七章
第1题
#include <stdio.h>
#define MAX 30
int main()
{
int a[MAX], n, number, i, j, max, sign;
scanf("%d", &n);
for (i = 0; i <n; i++)
{
scanf("%d", &number);
a[i] = number;
}
max = a[0];
for (j = 0; j < n; j++)
{
if (a[j] > max)
{
max = a[j];
sign = j;
}
}
printf("%d %d", max, sign);
return 0;
}
第2题
#include <stdio.h>
#define MAX 40
int main()
{
int a[MAX], n, number, i, j;
scanf("%d", &n);
for (i = n-1; i >=0; i--)
{
scanf("%d", &number);
a[i] = number;
}
printf("%d", a[0]);
for (j = 1; j < n; j++)
{
printf(" %d",a[j]);
}
return 0;
}
第3题
#include <stdio.h>
#define MAX 40
int main()
{
int a[MAX], b[MAX], c[MAX], n1, n2, number, i, j, d = 0, p,pd;
scanf("%d", &n1);
for (i = 0; i < n1; i++)
{
scanf("%d", &number);
a[i] = number;
}
scanf("%d", &n2);
for (j = 0; j < n2; j++)
{
scanf("%d", &number);
b[j] = number;
}
for (i = 0; i < n1; i++)
{
for (j = 0; j < n2; j++)
{
if (a[i] == b[j])
{
break;
}
}
if (j == n2)
{
pd = 1;
for (p = 0; p <= d; p++)
{
if (a[i] == c[p])
{
pd = 0;
break;
}
}
if (pd == 1)
{
c[d] = a[i];
d++;
}
}
}
for (j = 0; j < n2; j++)
{
for (i = 0; i < n1; i++)
{
if (b[j] == a[i])
{
break;
}
}
if (i == n1)
{
pd = 1;
for (p = 0; p <= d; p++)
{
if (b[j] == c[p])
{
pd = 0;
break;
}
}
if (pd==1)
{
c[d] = b[j];
d++;
}
}
}
for (i = 0; i < d; i++)
{
if(i==d-1)
printf("%d", c[i]);
else
printf("%d ", c[i]);
}
return 0;
}
第4题
#include<stdio.h>
#define MAX 60
int a[MAX][MAX];
int main()
{
int i,k,n=0,sum=0;
scanf("%d", &n);
for (i = 0; i<n; i++)
for (k = 0; k < n; k++)
scanf("%d", &a[i][k]);
for (i = 0; i < n-1; i++)
for (k = 0; k < n-1; k++)
sum += a[i][k];
for (i = 1; i < n-1; i++)
sum -= a[i][n - 1 - i];
printf("%d", sum);
return 0;
}
第5题
#include<stdio.h>
int main()
{
int i,j,k,n,m,arr[6][6],number,temp;
scanf("%d%d", &m,&n);
for (i = 0;i < n;i++)
{
for (j= 0;j < n;j++)
{
scanf("%d", &number);
arr[i][j] = number;
}
}
for (i = 0;i < n;i++)
{
for(k=1;k<=m;k++)
{
temp=arr[i][n-1];
for (j = n-1;j >=1;j--)
{
arr[i][j]=arr[i][j-1];
}
arr[i][0]=temp;
}
}
for (i = 0;i < n;i++)
{
for (j= 0;j < n;j++)
{
printf("%d ",arr[i][j]);
if(j==n-1)
printf("\n");
}
}
return 0;
}
第6题
#include <stdio.h>
int main()
{
int year, month, day, i, sum = 0;
int L[11] = { 31,29,31,30,31,30,31,31,30,31,30 };
int O[11] = { 31,28,31,30,31,30,31,31,30,31,30 };
scanf("%d/%d/%d", &year, &month, &day);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
for(i=0;i<(month-1);i++)
sum = sum + L[i];
else
for(i=0;i<(month-1);i++)
sum = sum + O[i];
sum = sum + day;
printf("%d", sum);
return 0;
}
第7题
#include <stdio.h>
#define MAX 80
int main()
{
int i=0,j=0,index=-1;
char str,ch,a[MAX];
scanf("%c", &str);
getchar();
while (1)
{
scanf("%c", &ch);
if (ch == '\n')
break;
a[i] = ch;
i++;
}
while(j<i)
{
if (a[j] == str)
index = j;
j++;
}
if (index == -1)
printf("Not Found");
else
printf("index = %d", index);
return 0;
}
第8题
#include <stdio.h>
#define MAX 80
int main()
{
int i= 0,j=0;
char ch,a[MAX];
while (1)
{
ch = getchar();
if (ch == '\n')
break;
a[i] = ch;
i++;
}
for (j = i - 1; j >= 0; j--)
printf("%c", a[j]);
return 0;
}
第9题
#include <stdio.h>
#define MAX 80
int n,i,j,a[MAX];
void store(int a[]);
void swap(int *pa,int *pb);
int main()
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
store(a);
printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
return 0;
}
void store(int a[])
{
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]<a[j+1])
swap(&a[j],&a[j+1]);
}
void swap(int *pa,int *pb)
{
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
第10题
#include<stdio.h>
int main()
{
int n, i, number, w, M, index, a[10] = { 0 };
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d",&number);
while (number > 0)
{
w=number % 10;
number /= 10;
a[w]++;
}
}
M = a[0];
for (i = 0; i < 10; i++)
{
if (a[i] >= M)
M = a[i];
}
printf("%d:", M);
for (i = 0; i < 10; i++)
{
if (a[i] == M)
printf(" %d", i);
}
return 0;
}
第11题
#include<stdio.h>
#define MAX 50
int arr[MAX][MAX];
int main()
{
int T, n,number,k ,i,j,pd;
scanf("%d", &T);
for (k = 1;k <= T;k++)
{
pd = 1;
scanf("%d", &n);
for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
{
scanf("%d", &number);
arr[i][j] = number;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<i;j++)
{
if(arr[i][j]!=0)
{
pd=0;
break;
}
}
if(pd==0)
break;
}
if (pd == 1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
第12题
#include<stdio.h>
#define MAX 60
int a[MAX][MAX];
int main()
{
int m, n, i, k,number,sum;
scanf("%d%d",&m, &n);
for (i = 0; i<m; i++)
{
for (k = 0; k < n; k++)
{
scanf("%d", &number);
a[i][k] = number;
}
}
for (i = 0; i < m; i++)
{
sum = 0;
for (k = 0; k < n; k++)
{
sum += a[i][k];
if (k == n - 1)
printf("%d\n", sum);
}
}
return 0;
}
第13题
#include<stdio.h>
#define MAX 50
int arr[MAX][MAX];
int main()
{
int n,number,k,i,j,max,index,pd=1,cs=0;
scanf("%d", &n);
for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
{
scanf("%d", &number);
arr[i][j] = number;
}
}
for (i=0;i<n;i++)
{
max=arr[i][0];
index=0;
pd=1;
for (j=0;j<n;j++)
{
if(arr[i][j]>=max)
{
max=arr[i][j];
index=j;
}
}
for(k=0;k<n;k++)
{
if(arr[k][index]<arr[i][index])
{
pd=0;
break;
}
}
if(pd==1)
{
printf("%d %d",i,index);
cs=1;
}
}
if(cs==0)
printf("NONE");
return 0;
}
第14题
#include <stdio.h>
char ch;
int main()
{
int sum=0;
while (ch!='\n')
{
scanf("%c",&ch);
if ('A' <= ch&&ch <= 'Z'&&ch != 'A' && ch != 'E' && ch != 'I' && ch != 'O' && ch != 'U')
sum++;
}
printf("%d", sum);
return 0;
}
第15题
#include <stdio.h>
#define MAX 80
char ch,a[MAX];
int main()
{
int i=0,j;
while (ch!='\n')
{
scanf("%c",&ch);
if ('A' <= ch&&ch <= 'Z')
ch=155-ch;
a[i]=ch;
i++;
}
for(j=0;j<=i-1;j++)
{
printf("%c",a[j]);
}
return 0;
}
第16题
#include<stdio.h>
#define MAX 60
char arr[MAX];
int main()
{
char ch;
int i, number=0,fu=1,pd=0;
for (i = 0; (ch = getchar())!= '#'; i++)
arr[i] = ch;
arr[i] = '\0';
for (i = 0; arr[i] != '\0'; i++)
{
if (arr[i] == '-' && number == 0 && pd == 0)
{
fu = -fu;
pd = 1;
}
if ('A' <= arr[i] && arr[i] <= 'F')
number = number * 16 + arr[i] - 'A' + 10;
else if('a' <= arr[i] && arr[i] <= 'f')
number = number * 16 + arr[i] - 'a' + 10;
else if ('0' <= arr[i] && arr[i] <= '9')
number = number * 16 + arr[i] - '0';
}
number *= fu;
printf("%d", number);
return 0;
}
第17题
#include <stdio.h>
#define MAX 80
int main()
{
int i= 0,j=0;
char ch,a[MAX];
while (1)
{
ch = getchar();
if (ch == '\n')
break;
a[i] = ch;
i++;
}
for (j = i - 1; j >= 0; j--)
printf("%c", a[j]);
return 0;
}
第18题
#include <stdio.h>
#define MAX 80
int n,i,j,a[MAX];
void store(int a[]);
void swap(int *pa,int *pb);
int main()
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
store(a);
printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
return 0;
}
void store(int a[])
{
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]<a[j+1])
swap(&a[j],&a[j+1]);
}
void swap(int *pa,int *pb)
{
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
第19题
#include<stdio.h>
#define MAX 60
char arr[MAX];
int main()
{
char ch;
int i, number=0,fu=1,pd=0;
for (i = 0; (ch = getchar())!= '#'; i++)
arr[i] = ch;
arr[i] = '\0';
for (i = 0; arr[i] != '\0'; i++)
{
if (arr[i] == '-' && number == 0 && pd == 0)
{
fu = -fu;
pd = 1;
}
if ('A' <= arr[i] && arr[i] <= 'F')
number = number * 16 + arr[i] - 'A' + 10;
else if('a' <= arr[i] && arr[i] <= 'f')
number = number * 16 + arr[i] - 'a' + 10;
else if ('0' <= arr[i] && arr[i] <= '9')
number = number * 16 + arr[i] - '0';
}
number *= fu;
printf("%d", number);
return 0;
}