1.输入m行n列的二维数组,输出每一行的和,以及每一列的和。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int m=0;int n=0;
printf("请输入行数和列数:\n");
scanf("%d %d",&m,&n);
int s[m][n];
bzero(s,sizeof(s));
int line=sizeof(s)/sizeof(s[0]);
int row=sizeof(s[0])/sizeof(s[0][0]);
int sum=0;
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
printf("请输入数组中第%d行第%d列的元素:",i+1,j+1);
scanf("%d",&s[i][j]);
}
}
for(int i=0;i<line;i++){
sum=0;
for(int j=0;j<row;j++){
sum+=s[i][j];
}
printf("第%d行的和为:%d ",i+1,sum);
}
putchar(10);
for(int i=0;i<row;i++){
sum=0;
for(int j=0;j<line;j++){
sum+=s[j][i];
}
printf("第%d列的和为:%d ",i+1,sum);
}
putchar(10);
return 0;
}

2.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int m=0,n=0;
printf("请输入二位数组的行与列:");
scanf("%d %d",&m,&n);
int s[m][n];
bzero(s,sizeof(s));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
printf("请输入第%d行第%d列的数值:",i+1,j+1);
scanf("%d",&s[i][j]);
}
}
//四角的和
int four_sum=s[0][0]+s[0][n-1]+s[m-1][0]+s[m-1][n-1];
//printf("%d\n",four_sum);
//对角线的和
int line_sum=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(j==i){
line_sum+=s[i][j];
}
}
}
printf("四角的和%d减去对角线的和%d的值为:%d",four_sum,line_sum,four_sum-line_sum);
putchar(10);
return 0;
}

3.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int line=0,row=0;
printf("请输入二位数组的行与列:");
scanf("%d %d",&line,&row);
int s[line][row];
bzero(s,sizeof(s));
int max=s[0][0];
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
printf("请输入第%d行第%d列的数值:",i+1,j+1);
scanf("%d",&s[i][j]);
if(s[i][j]>max)
max=s[i][j];
}
}
int sec_max=0;
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
if(s[i][j]==max)
continue;
if(s[i][j]>sec_max)
sec_max=s[i][j];
}
}
printf("第二大值为:%d",sec_max);
putchar(10);
return 0;
}

4.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int line=0,row=0;
printf("请输入二位数组的行与列:");
scanf("%d %d",&line,&row);
int s[line][row];
bzero(s,sizeof(s));
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
printf("请输入第%d行第%d列的数值:",i+1,j+1);
scanf("%d",&s[i][j]);
}
}
printf("改变前:\n");
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
printf("%d ",s[i][j]);
}
putchar(10);
}
int a[row][line];
bzero(a,sizeof(a));
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
a[j][i]=s[i][j];
}
}
printf("改变后:\n");
for(int i=0;i<row;i++){
for(int j=0;j<line;j++){
printf("%d ",a[i][j]);
}
putchar(10);
}
return 0;
}

5.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char str[64]="";
printf("请输入字符串:");
gets(str);
putchar(10);
for(int i=0;i<strlen(str);i++){
if(str[i]==' '){
for(int j=i;j<strlen(str);j++){
str[j]=str[j+1];
}
//i--为了回退一位,防止连着的空格
i--;
}
}
puts(str);
return 0;
}

6.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char s[32]="good good study";
int i=0;int j=strlen(s)-1;
while(i<j){
int temp=s[i];
s[i]=s[j];
s[j]=temp;
i++;j--;
}//实现全字符串逆置
i=0;j=0;
int index=0;int blank=0;
while(s[index]!='\0'){
blank=index;
while(s[blank]==' '){//用于寻找每个单词的首地址下标
blank++;
}
j=blank;//i 记录每个单词首地址
while(s[j]!=' ' && s[j]!='\0'){
j++; //寻找空格
}
index=j;
j--;
while(blank<j){
int temp=s[blank];
s[blank]=s[j];
s[j]=temp;
blank++;j--;
}
}
puts(s);
return 0;
}
ubunt
![]()
7.思维导图

文章介绍了C语言程序,分别实现了计算二维数组每行和每列的和,提取数组四角和对角线和,查找并输出最大值和第二大值,以及字符串处理如删除连续空格和逆序功能。
678

被折叠的 条评论
为什么被折叠?



