一、课堂笔记整理
二、课后作业
1)提示并输入一个字符串,统计该字符串中字母、数字、空格以及其他字符的个数
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char arr[20]="";
printf("请输入一个字符串: ");
gets(arr);
int len = strlen(arr);
printf("所有元素的个数为:%d\n",len);
return 0;
}
运行图:
2)提示并输入一个字符串,求出该字符串中所有数字的总和
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char arr[100]={""};
int sum =0;
printf("请输入一个字符串\n");
gets(arr);
for(int i=0;i<strlen(arr);i++)
{
if(arr[i]>=48&&arr[i]<=57)
{
sum+=arr[i]-48;
}
}
printf("数字总和为:%d\n",sum);
return 0;
}
运行图:
3)定义一个4*3的二维整形数组,完成对二维数组的输入、输出。并将该二维数组中每一行的最值放入到一个一维数组中,并对该一维数组进行升序排序后输出。
#include <stdio.h>
#define row 3
#define column 4
int main() {
int data[row][column] = { 0 };
int array[row] = { 0 };
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
printf("请输入第%d行,第%d列的元素:", i + 1, j + 1);
scanf("%d", &data[i][j]);
}
printf("\n");
}
for (int i = 0; i < row; i++) {
int max = 0,maxj=0;
for (int j = 0; j < column; j++) {
if (data[i][j] > max) {
max = data[i][j];
maxj = j;
}
printf("%d\t", data[i][j]);
}
array[i] = data[i][maxj];
printf("\n");
}
for (int i = 0; i < row-1; i++)
{
for (int j = 0; j <row-(1+i); j++)
{
if (array[j] > array[j + 1]) {
int flag = array[j];
array[j] = array[j + 1];
array[j + 1] = flag;
}
}
}
printf("升序数组为:\n");
for (int i = 0; i < row; i++)
{
printf("%d\t", array[i]);
}
printf("\n");
return 0;
}
运行图:
4)提示并输入两个一维整形数组,求这两个数组的交集。
#include <stdio.h>
#define M 2
#define N 5
int main() {
int data[M][N] = { 0 };
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("请输入第%d个数组,第%d列的元素:", i + 1, j + 1);
scanf("%d", &data[i][j]);
}
printf("\n");
}
printf("两个数组交集为:\n");
for (int i = 0; i < N;i++) {
for (int j = 0; j < N; j++)
{
if (data[0][i] == data[1][j]) {
printf("%d\t", data[1][j]);
}
}
}
return 0;
}
运行图: