今天课前练习了2个二维数组程序 课上也敲了4个一维数组的问题 加上课后敲的1个 感觉除了有时候对逻辑方面没有完全理清楚外 对数组的运用还是比较熟练了
1、对一个二维数组进行行列互换
#include<stdio.h>
int main()
{
int i;
int j;
int a[2][3]={{1,2,3},{2,3,4}};
int b[3][2];
printf("array a:\n");
for(i = 0; i <= 1; i++)
{
for(j = 0; j <= 2; j++)
{
printf("%5d",a[i][j]);
b[j][i] = a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i = 0; i <= 2; i++)
{
for(j = 0; j<= 1; j++)
{
printf("%5d",b[j][i]);
}
printf("\n");
}
return 0;
}
2、求出3×4矩阵中最大元素的值以及其所在的行号和列号
#include<stdio.h>
int main()
{
int i;
int j;
int max;
int row = 0;
int colum = 0;
int a[3][4] = {{1,2,5,6},{12,5,6,7},{8,9,10,11}};
max = a[0][0];
for(i = 0; i <= 2; i++)
{
for(j = 0; j <= 3; j++)
{
if(a[i][j] > max)
{
max = a[i][j];
row = i;
colum = j;
}
}
}
printf("max is:%d\n",max);
printf("row = %d\n",row);
printf("colum = %d\n",colum);
return 0;
}
3、求一段字符串中数字的个数
#include <stdio.h>
#include <string.h>
int main()
{
int i;
int sum = 0;
char str[20];
printf("the string is:\n");
gets(str);
for(i = 0; str[i] != '\0'; i++)
{
if(str[i] >= '0' && str[i] <= '9')
{
sum++;
}
}
printf("%d",sum);
return 0;
}
4、将一段数字字符串以整型输出
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main()
{
int i;
int k = 0;
char str[MAX_SIZE];
printf("the str is:\n");
gets(str);
for(i = 0; i <= strlen(str) - 1; i++)
{
k = k * 10 + (str[i] - '0');
}
printf("%d\n",k);
return 0;
}
5、将整型数字以字符串形式输出
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main()
{
int i;
int len;
int num;
int count = 0;
char temp;
char str[MAX_SIZE];
printf("the string is:\n");
scanf("%d",&num);
i = 0;
while(num != 0)
{
str[i] = num % 10 + '0';
num = num / 10;
i++;
}
str[i] = '\0';
len = strlen(str);
for(i = 0; i < len / 2 ; i++)
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
printf("%s\n",str);
return 0;
}
6、将字符串中的数字相加求和
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main()
{
int i;
int sum = 0;
int k = 0;
char a[MAX_SIZE];
printf("the string is:\n");
scanf("%s",a);
for(i = 0; a[i] != '\0'; i++)
{
while(a[i] >= '0' && a[i] <= '9')
{
k = k * 10 + (a[i] - '0');
i++;
}
sum = sum + k;
k = 0;
}
printf("%d\n",sum);
return 0;
}
7、求出字符串中最长的数字子串的长度
#include<stdio.h>
#define MAX_SIZE 100
int main()
{
int i;
int num = 0;
int count = 0;
int result = 0;
char a[MAX_SIZE];
printf("the string is:\n");
scanf("%s",a);
for(i = 0; a[i] != '\0'; i++)
{
while(a[i] >= '0' && a[i] <= '9')
{
count++;
i++;
}
if(count >= result)
{
result = count;
}
count = 0;
}
printf("%d",result);
return 0;
}
数组的语句还是挺简单的 关键在于逻辑
★键盘上输入字符时候,用字符数组定义
★使用宏定义
★数组名为数组首元素的地址
★连续判断用while