练习1:
输入m行n列得二维数组,输出每一行的和,以及每一列的和
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int m,n; printf("请输入行数:"); scanf("%d",&m); printf("请输入列数:"); scanf("%d",&n); int arr[m][n]; int i,j; for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("请输入第%d行第%d列元素:",i+1,j+1); scanf("%d",&arr[i][j]); } } printf("arr数组元素为:\n"); for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%-4d ",arr[i][j]); } putchar(10); } unsigned sumline=0; unsigned sumrow=0; for(i=0;i<m;i++) { sumline=0; for(j=0;j<n;j++) { sumline+=arr[i][j]; } printf("第%d行sum=%u\n",i+1,sumline); } for(i=0;i<n;i++) { sumrow=0; for(j=0;j<m;j++) { sumrow+=arr[j][i]; } printf("第%d列sum=%u\n",i+1,sumrow); } return 0; }
练习2:
输入n行n列得二维数组 ,计算四边的和减去正对角线的和得结果
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int n; printf("请输入正方形二维数组的边长:"); scanf("%d",&n); int arr[n][n]; int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("请输入第%d行第%d列的值:",i+1,j+1); scanf("%d",&arr[i][j]); } } printf("数组元素为:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%-4d ",arr[i][j]); } putchar(10); } int zsum=0; int fsum=0; for(i=0;i<n;i++) { zsum+=arr[i][i]; fsum+=arr[n-1-i][n-1-i]; } int lsum1=0; int lsum2=0; int rsum1=0; int rsum2=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i==0) { lsum1+=arr[i][j]; rsum1+=arr[j][i]; } if(i==n-1) { lsum2+=arr[i][j]; rsum2+=arr[j][i]; } } } printf("结果为:%d\n",(lsum1+lsum2+rsum1+rsum2)-zsum-fsum); return 0; }
练习3:
输入m行n列得二维数组,计算二维数组得最大值
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int m,n; printf("输入行数:"); scanf("%d",&m); printf("输入列数:"); scanf("%d",&n); int arr[m][n]; int i,j; for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("请输入第%d行第%d列的值:",i+1,j+1); scanf("%d",&arr[i][j]); } } printf("数组元素为:\n"); for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%-4d ",arr[i][j]); } putchar(10); } int max=arr[0][0]; for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(max<arr[i][j]) { max=arr[i][j]; } } } printf("二维数组最大值=%d\n",max); return 0; }
练习4:
编程实现二维数组转置
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int m,n; printf("请输入行数:"); scanf("%d",&m); printf("请输入列数:"); scanf("%d",&n); int arr[m][n]; int arr2[n][m]; bzero(arr,sizeof(arr)); bzero(arr2,sizeof(arr2)); int i,j; for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("请输入第%d行第%d列:",i+1,j+1); scanf("%d",&arr[i][j]); } } printf("arr数组元素为:\n"); for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%-4d",arr[i][j]); } putchar(10); } for(i=0;i<m;i++) { for(j=0;j<n;j++) { arr2[j][i]=arr[i][j]; } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%d ",arr2[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[20]=""; gets(str); int i; int j; int n=strlen(str); for(i=0;i<n+1;i++) { if(' '==str[i]) { for(j=i;j<n+1;j++) { str[j]=str[j+1]; } n--; i--; } } puts(str); return 0; }
练习6:
输入一个字符串,实现单词逆转
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { char str[100]=""; gets(str); int n=strlen(str); int i; int temp; for(i=0;i<n/2;i++) { temp=str[n-i-1]; str[n-i-1]=str[i]; str[i]=temp; } int j=0; int nn; int mm; for(i=0;i<=n;i++) { if(' '==str[i]||i==n) { nn=i; mm=0; while(j<nn) { temp=str[i-1-mm]; str[i-1-mm]=str[j]; str[j]=temp; j++; nn--; mm++; } j=i+1; } } puts(str); return 0; }
思维导图
标签:0407,int,scanf,基础,char,printf,include,输入 From: https://blog.csdn.net/slander_1120/article/details/137471489