1.输入一个字符串,计算空格的个数
int main(int argc, const char *argv[]){
char arr[20];
gets(arr);
size_t count=0;
for (int i = 0; arr[i]!='\0' ; i++){
if(arr[i]==' '){
count++;
}
}
printf("空格的个数是:%ld\n",count);
return 0;
}
2.输入一个字符串,计算单词的个数
eg: “good good study”(空格的格式可能是多个)
单词的个数是3,
#include <stdio.h>
int main(int argc, const char *argv[]){
char arr[20];
gets(arr);
size_t count=0;
int i =0;
while(arr[i]!='\0'){
if(arr[i]!=' ' && (arr[i+1]==' '||arr[i+1]=='\0')){
count++;
}
i++;
}
printf("单词的个数是:%ld\n",count);
return 0;
}
3.矩阵相乘:前提条件A矩阵的列数需要和B矩阵的行数相同
#include <stdio.h>
int main(int argc, const char *argv[]){
int line1=0,cow1=0;
printf("line1 cow1:");
scanf("%d %d",&line1,&cow1);
int line2=0,cow2=0;
printf("line2 cow2:");
scanf("%d %d",&line2,&cow2);
if(cow1!=line2){
printf("error!\n");
return 0;
}
int a[line1][cow1],b[line2][cow2],ans[20][20]={0};
printf("a:\n");
for (int i = 0; i < line1 ; i++){
for (int j = 0; j < cow1; j++){
scanf("%d",&a[i][j]);
}
}
printf("b:\n");
for (int i = 0; i < line2 ; i++){
for (int j = 0; j < cow2; j++){
scanf("%d",&b[i][j]);
}
}
for (int i = 0; i < line1 ; i++){
for (int j = 0; j < cow2; j++){
for (int k = 0; k <line1; k++){
ans[i][j]+=a[i][k]*b[k][j];
}
printf("%d ",ans[i][j]);
}
puts(" ");
}
return 0;
}
4.定义有参无返函数实现杨慧三角
参数:二维数组,行,列
#include <stdio.h>
void YanhuiTri(int n){
int arr[n][n];
for (int i = 0; i < n; i++){
for (int j = 0; j <= i; j++){
if(j==0||i==j){
arr[i][j]=1;
}else{
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
printf("%-3d",arr[i][j]);
}
puts(" ");
}
}
int main(int argc, const char *argv[]){
int a;
scanf("%d",&a);
YanhuiTri(a);
return 0;
}
5.定义有参无返函数实现二维数组转置?
参数:二维数组,行,列
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Rev(int line,int row,int a[line][row]);
int main(int argc, const char *argv[]){
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int line=sizeof(a)/sizeof(a[0]);
int row=sizeof(a[0])/sizeof(a[0][0]);
Rev(line,row,a);
return 0;
}
void Rev(int line,int row,int a[line][row]){
int b[row][line];
for(int i=0;i<line;i++){
for(int j=0;j<row;j++){
b[j][i]=a[i][j];
}
}
for(int i=0;i<row;i++){
for(int j=0;j<line;j++){
printf("%-3d",b[i][j]);
}
puts("");
}
}
6.输入一个字符串实现单词的逆置
eg:“good good study”
输出:“study good good”
7.输入n个字符串每个字符串20字节,并实现输出