1.写一个函数,使给定的一个3 X 3 的二维整型数组转置,即行列互换。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int i, j;
int num[3][3];
printf("请输入一组数据:\n");
for (i = 0; i < 3;i++) {
for (j = 0; j < 3;j++) {
scanf("%d",&num[i][j]);
}
}
printf("original array:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ",num[i][j]);
}
printf("\n");
}
printf("last array:\n");
last(num);
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", num[i][j]);
}
printf("\n");
}
return 0;
}
/*
1 2 3 1 4 7
4 5 6 2 5 8 4 2 3
7 8 9 行列转换为 3 6 9 ,其实就是将左下角的 7 8 与右上角的 6 进行互换,如何得到
左下角的三个数呢,性质就和打星星是一样的
*/
int last(int num[3][3]) {
int t, i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < i; j++) {
t = num[i][j];
num[i][j] = num[j][i];
num[j][i] = t;
}
}
}
2.写一个函数,使输入的一个字符串按反序存放,如输入“CANADA”,输出“ADANAC”。在主函数中输入和输出字符串。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
printf("请输入一个字符串:\n");
char num[100];
scanf("%s", &num);
printf("反序之后的字符串:\n");
array(num);
printf("%s", num);
return 0;
}
int array(char num[]) {
int len, i, t, len2;
len = strlen(num);
len2 = len / 2;
for (i = 0; i <len2; i++) {
t = num[i];
num[i] = num[len - i - 1];
num[len - i - 1] = t;
}
/*
for (i = 0; i <len2; i++,len2--) {
t = num[i];
num[i] = num[len - 1];
num[len - 1] = t;
}
*/
}
3.写一个函数,将两个字符串连接,如字符串1是“BEI”,字符串2是“JING”,连接起来就是“BEIJING”.
// 方法一
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
char str[50], str2[50];
printf("请输入第一个字符串:\n");
scanf("%s", &str);
printf("请输入第二个字符串:\n");
scanf("%s", &str2);
strcat(str,str2);
printf("\nThe New String is:%s", str);
return 0;
}
// 方法二
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
void conn(char str1[], char str2[], char str3[]);
char str3[50], str1[50], str2[50];
printf("请输入第一个字符串:\n");
scanf("%s", &str1);
printf("请输入第二个字符串:\n");
scanf("%s", &str2);
conn(str1, str2, str3);
printf("\nThe New String is:%s", str3);
return 0;
}
void conn(char str1[],char str2[],char str3[]) {
int i, j;
for (i = 0; str1[i] != '\0'; i++) {
str3[i] = str1[i];
}
for (j = 0; str2[j] != '\0';j++) {
str3[i + j] = str2[j];
}
str3[i + j] = '\0';
}
4.写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。【元音字母:A,E,I,O,U,a,e,i,o,u】
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
void copy(char str[],char str2[]);
char str[50], str2[50];
printf("请输入第一个字符串:\n");
scanf("%s", &str);
copy(str,str2);
printf("COPY的结果:%s",str2);
return 0;
}
void copy(char str[], char str2[]) {
int i, j;
for (i = 0,j=0; str[i] != '\0'; i++)
{//!='\0'是不结束的意思
if (str[i] == 'A'|| str[i] == 'E'|| str[i] == 'I'|| str[i] == 'O'|| str[i] == 'U'||
str[i] == 'a'|| str[i] == 'e'|| str[i] == 'i'|| str[i] == 'o'|| str[i] == 'u')
{
str2[j] = str[i];
j++;
}
}
str2[j] = '\0';
}
5.写入一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格,如输入2008,应输出“2 0 0 8”。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
char num[10];
void add(char num[]);
printf("请输入一个四位数字:\n");
scanf("%s",&num);
add(num);
printf("The Last String is:%s", num);
return 0;
}
void add(char num[])
{
int i,len;
len = strlen(num);
for (i = len; i >0; i--)
{//4位数
num[i * 2] = num[i];
num[i * 2 - 1] = ' ';
}
}