目录
61、练习7-7 矩阵运算
62、练习7-8 方阵循环右移
63、习题6-1 分类统计字符个数
64、习题6-2 使用函数求特殊a串数列和
65、习题6-4 使用函数输出指定范围内的Fibonacci数
66、习题6-5 使用函数验证哥德巴赫猜想
67、习题6-6 使用函数输出一个整数的逆序数
68、练习8-2 计算两数的和与差
69、练习7-9 计算天数
70、练习7-10 查找指定字符
61、练习7-7 矩阵运算
给定一个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 n;
int arr[11][11];
scanf("%d",&n);
int i,j;
int sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
sum+=arr[i][j]; //全部数据相加
}
}
for(i=0;i<n;i++)
{
sum-=arr[i][n-1]; //减去最后一列
sum-=arr[n-1][i]; //减去最后一行
}
sum+=arr[n-1][n-1]; //元素arr[n-1][n-1]被减两次,因此加一次
int l=n-1;
for(i=0;i<n;i++)
{
sum-=arr[i][l]; //减去副对角线上的元素
l--;
}
sum+=arr[0][n-1]; //元素arr[0][n-1]被减两次,因此加一次
sum+=arr[n-1][0]; //元素arr[n-1][0]被减两次,因此加一次
printf("%d\n",sum);
return 0;
}
62、练习7-8 方阵循环右移
本题要求编写程序,将给定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 m,n;
scanf("%d %d",&m,&n);
int i,j;
int arr[7][7];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
int k;
int index;
for(k=1;k<=m;k++)
{
for(i=0;i<n;i++)
{
index=arr[i][n-1];
for(j=n-1;j>0;j--)
{
arr[i][j]=arr[i][j-1];
}
arr[i][j]=index;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
63、习题6-1 分类统计字符个数
本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。
函数接口定义:
void StringCount( char s[] );
其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
裁判测试程序样例:文章来源地址https://www.toymoban.com/news/detail-434307.html
#include <stdio.h>
#define MAXS 15
void StringCount( char s[] );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */
int main()
{
char s[MAXS];
ReadString(s);
StringCount(s);
return 0;
}
/* Your function will be put here */
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
代码:
void StringCount( char s[] )
{
int i;
int letter=0;
int blank=0;
int digit=0;
int other=0;
for(i=0;i<strlen(s);i++)
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') letter++;
else if(s[i]==' '||s[i]=='\n') blank++;
else if(s[i]>='0'&&s[i]<='9') digit++;
else other++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n",letter,blank,digit,other);
}
64、习题6-2 使用函数求特殊a串数列和
给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。
函数接口定义:
int fn( int a, int n ); int SumA( int a, int n );
其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。文章来源:https://www.toymoban.com/news/detail-434307.html
裁判测试程序样例:
到了这里,关于C语言经典编程题100例(61~80)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!