1.求矩阵对角线元素和
#include<stdio.h>
int main(){
int arr[][3]={
{2,3,4},{2,3,4},{2,3,4}
};
int i,j,sum=0;
for(i=0;i<3;i++){
printf("%d %d %d\n",arr[i][0],arr[i][1],arr[i][2]);
}
for(i=0;i<3;i++)
sum+=arr[i][i];
printf("sum=%2d\n",sum);
return 0;
}
结果:
2.数组逆序
关键点:for(i=0;i<N/2;i++) {
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
距离说明
当i为0
temp=a[0] //此时temp的值为1
a[i]=a[N-i-1] //a[0]=a[4], 此时数组第一个元素为5
a[N-i-1] =temp //a[4]=1,此时数组最后一个元素为1
#include<stdio.h>
#define N 5
int main(){
int a[N],i,temp;
printf("输入一个数组 :\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("数组:");
for(i=0;i<N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++) {
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n互换后\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
return 0;
}
结果:
3.连接两个字符串,不得使用库函数
关键点:while(s1[i]!='\0')
i++;
//先循环到s1的末端,
while(s2[j]!='\0')
s1[i++]=s2[j++];
//从是s1末端开始,把s2的元素从头到尾元素加上去,即s1末端之后的位置,依次赋值为s2的元素
#include<stdio.h>
int main(){
char s1[300],s2[300];
int i=0,j=0;
printf("输入s1:");
scanf("%s",s1);
printf("输入s2:");
scanf("%s",s2);
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]='\0';
printf("\n 连接后的字符串为:%s\n",s1);
return 0;
}
4.将一个字符数组的值复制到另一个字符数组
#include<stdio.h>
#include<string.h>
int main(){
char s1[700],s2[600];
int i;
printf("input s2: ");
scanf("%s",s2);
for(i=0;i<strlen(s2);i++)
s1[i]=s2[i];
printf("s1:%s\n",s1);
return 0;
}