1.输入m行n列输入m行n列的二维数组,输出每一行的和,以及每一列的和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int n,m;
int i,j;
int sumrow=0,sumcolum=0;
printf("please enter m:");
scanf("%d",&m);
printf("please enter n:");
scanf("%d",&n);
int arr[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<m;i++)
{
sumrow=0;
for(j=0;j<n;j++)
{
sumrow+=arr[i][j];
}
printf("di %d hang de he:%d\n",i+1,sumrow);
}
for(j=0;j<n;j++)
{
sumcolum=0;
for(i=0;i<m;i++)
{
sumcolum+=arr[i][j];
}
printf("di %d lie de he:%d\n",j+1,sumcolum);
}
return 0;
}
2.输入n行n列的二维数组,计算 四边的和 减去 正反对角线的和 的结果
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int n,sibianhe=0;
int i,j;
printf("please enter n:\n");
scanf("%d",&n);
int arr[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
sibianhe+=arr[i][0];
sibianhe+=arr[i][n-1];
}
for(j=0;j<n;j++)
{
sibianhe+=arr[0][j];
sibianhe+=arr[n-1][j];
}
sibianhe=sibianhe-arr[0][0]-arr[0][n-1]-arr[n-1][0]-arr[n-1][n-1];
printf("%d\n",sibianhe);
return 0;
}
3.输入m行n列的二维数组,计算二维数组的第二大值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int m,n;
int i,j;
int max,max2;
printf("please enter m:");
scanf("%d",&m);
printf("please enter n:");
scanf("%d",&n);
int arr[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
max=arr[0][0];
max2=arr[0][1];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(max<arr[i][j])
{
max2=max;
max=arr[i][j];
}else if(max2<arr[i][j]&&arr[i][j]!=max)
{
max2=arr[i][j];
}
}
}
printf("di er max=%d",max2);
return 0;
}
4.编程实现二维数组转置
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int n,m;
int i,j;
printf("please enter m:");
scanf("%d",&m);
printf("please enter n:");
scanf("%d",&n);
int arr[m][n];
int arr1[n][m];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
arr1[j][i]=arr[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%-4d",arr1[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[100]="";
gets(str);
int i,newsize=0;
for(i=0;str[100]!='\0';i++)
{
if(str[i]!=' ')
{
str[newsize++]=str[i];
}
}
puts(str);
return 0;
}
6.输入一个字符串,实现单词逆置
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int i,j,k;
char str[100]="";
char tempt;
gets(str);
for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
tempt=str[i];
str[i]=str[j];
str[j]=tempt;
}
int wordstart=0;
for(i=0;i<strlen(str);i++)
{
if(str[i]==' '||str[i]=='\0')
{
int wordend=i-1;
for(j=wordstart,k=wordend;j<k;j++,k--)
{
tempt=str[j];
str[j]=str[k];
str[k]=tempt;
}
}
wordstart=i+1;
}
/* int wordend=strlen(str)-1;
for(i=wordstart,j=wordend;i<j;i++,j--)
{
tempt=str[i];
str[i]=str[j];
str[j]=tempt;
}*/
puts(str);
return 0;
}