1、输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数
#include <stdio.h>
#include <string.h>
main(){
int sumNum = 0;
int sumSpace = 0;
int sumLetter = 0;
int sumOther = 0;
char str[20];
printf("请输入一行字符");
scanf("%s",str);//用一个数组来接收字符串
int len = strlen(str);//获取数组长度
//逐个元素对比ASCII码
for (int i = 0; i < len;i++){
int temp = (int )str[i];
if (temp >= 48 && temp <= 57){
sumNum ++;
}else if ((temp >= 65 && temp <= 90) || (temp >= 97 && temp <= 122)){
sumLetter++;
}else if (temp==32){
sumSpace++;
}else{
sumOther++;
}
}
printf("其中有字母:%d",sumLetter);
printf("\n其中有数字:%d", sumNum);
printf("\n其中有空格:%d", sumSpace);
printf("\n其中有其他字符:%d", sumOther);
getch();
return 0;
}
2、求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出
#include <stdio.h>
#include <math.h>
double mysum(int n);
main(){
int a = 100;
double sum = 0;
sum = mysum(a);
printf("结果为:%.15lf",sum);//默认显示小数点后6位,此处设置为显式小数点后15位
getch();
return 0;
}
double mysum(int n){
double temp = 0.0;
int j = 1;
for (int i = 1; i <= n; i++){
//第一种方式:
//temp += 1.0*j/i;
//j *= -1;
//第二种方式:
temp += pow(-1.0, i + 1)*(1.0/i);
}
return temp;
}
3、矩阵转置:将一个m行n列矩阵(即m×n矩阵)的每一行转置成另一个n×m矩阵的相应列
例如:将2*3的矩阵转置后输出:
即将 1 2 3 转置 1 4
4 5 6 2 5
3 6
#include <stdio.h>
//矩阵的行数列数可以在此处设定
#define m 2
#define n 3
void main(){
int a[m][n] = { {1,2,3}, {4,5,6} };//初始化矩阵
int b[n][m];
//进行转置操作
for (int i = 0; i < m;i++){
for (int j = 0; j < n;j++){
b[j][i] = a[i][j];
}
}
//输出转置后的矩阵
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
printf("%d\t",b[i][j]);
}
printf("\n");
}
getch();
}