您的位置:首页 > 教育 > 培训 > C基础day7

C基础day7

2024/10/6 1:39:31 来源:https://blog.csdn.net/qq_55245263/article/details/140304376  浏览:    关键词:C基础day7

一、思维导图

二、课后练习

1、提示并输入一个字符串,统计该字符串中字母、数字、空格以及其他字符的个数

#include<myhead.h>
#define M 20
int main(int argc, const char *argv[])
{int sum_a=0,sum_b=0,sum_c=0,sum_d=0;char str[M];printf("please enter string:");gets(str);//循环判断每个字符for(int i=0;str[i]!='\0';i++){//字母if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))sum_a++;//数字else if(str[i]>='0'&&str[i]<='9')sum_b++;//空格else if(str[i] == ' ')sum_c++;//其他elsesum_d++;}//输出累计数量printf("字符串中有:字母%d个,数字%d个,空格%d个,其他字符%d个\n",sum_a,sum_b,sum_c,sum_d);return 0;
}

2、提示并输入一个字符串,求出该字符串中所有数字的总和

#include<myhead.h>
#define M 20
int main(int argc, const char *argv[])
{int sum = 0;char str[M];printf("please enter string:");gets(str);//循环判断数字并求和for(int i=0;str[i]!='\0';i++){if(str[i]>='0' && str[i]<='9')sum += str[i] -'0';}//输出数字总和printf("字符串中数字的总和为:%d\n",sum);return 0;
}

3、定义一个4*3的二维整形数组,完成对二维数组的输入、输出。并将该二维数组中每一行的最值放入到一个一维数组中,并对该一维数组进行升序排序后输出。

#include<myhead.h>
int main(int argc, const char *argv[])
{int arr[4][3];//二维数组输入for(int i=0;i<4;i++){for(int j=0;j<3;j++){printf("请输入%d行%d列:",i+1,j+1);scanf("%d",&arr[i][j]);}putchar(10);}//二维数组输出for(int i=0;i<4;i++){for(int j=0;j<3;j++){printf("%d行%d列:%d\n",i+1,j+1,arr[i][j]);}putchar(10);}//定义一维数组存放二维数组每一行最大值int brr[4];//循环二维数组比较选出每一行最大值for(int i=0;i<4;i++){int max = arr[i][0];for(int j=1;j<3;j++){if(max<arr[i][j])max = arr[i][j];}brr[i] = max; 	//将每行最大值存入数组brr}//对一维数组进行升序排序//冒泡排序for(int i=1;i<4;i++){for(int j=0;j<4-i;j++){if(brr[j]>brr[j+1]){int temp = brr[j];brr[j] = brr[j+1];brr[j+1] = temp;}}}printf("冒泡排序升序排序后的结果:");//循环输出for(int i=0;i<4;i++){printf("%d\t",brr[i]);}putchar(10);//选择排序int mini = 0;  //记录最值的下标for(int i=0;i<4;i++) 	//遍历整个数组找最值{mini = i;//遍历整个数组比较for(int j=i+1;j<4;j++){if(brr[mini] > brr[j]){mini =j; //更新最值下标}}//判断找到的最值是否放在了首位,不是则交换if(mini !=i){int temp = brr[i];brr[i] = brr[mini];brr[mini] = temp;}}//输出一位数组排序后结果printf("选择排序升序排序后的结果:");//循环输出for(int i=0;i<4;i++){printf("%d\t",brr[i]);}putchar(10);return 0;
}

4、提示并输入两个一维整形数组,求这两个数组的交集。

#include<myhead.h>
#define MAX 100
int main(int argc, const char *argv[])
{//提示并输入两个一维数组int arr1[MAX],arr2[MAX];int size1=0,size2=0;printf("please enter arr1 size1:");scanf("%d",&size1);printf("please enter arrry1:\n");for(int i=0;i<size1;++i){printf("请输入第个%d元素:",i+1);scanf("%d",&arr1[i]);getchar();}printf("please enter arr2 size2:\n");scanf("%d",&size2);printf("please enter arrry2:");for(int i=0;i<size2;++i){printf("请输入第个%d元素:",i+1);scanf("%d",&arr2[i]);getchar();}//遍历两个数组比较得出交集//定义一位数组存储交集int brr[MAX];int k =0;for(int i=0;i<size1;i++){for(int j=0;j<size2;j++){if(arr1[i] == arr2[j]){brr[k] = arr1[i];k++;}}}//输出交集数组brrprintf("两数组交集为:");for(int i=0;i<k;i++){printf("%d\t",brr[i]);}return 0;
}

5、完成注册和登录功能:

#include<myhead.h>void regis();
int login();char old_user[32];
char old_passwd[32];
char new_user[32];
char new_passwd[32];int main(int argc, char const *argv[])
{int a,res;while(1){ //循环执行printf("***********");printf("1.注册 2.登录");printf("***********\n");scanf("%d",&a);switch(a){case 1:regis();break;case 2:while (1){res = login();if (res==1){return 0;}else{printf("请重新输入\n");}}  break;default:break;}}return 0;
}void regis(){printf("请输入注册帐号\n");scanf("%s",old_user);printf("请输入注册密码\n");scanf("%s",old_passwd);
}
int login(){printf("请输入登录帐号\n");scanf("%s",new_user);printf("请输入登录密码\n");scanf("%s",new_passwd);if (strcmp(old_user,new_user) == 0 && strcmp(old_passwd,new_passwd) == 0){printf("登录成功\n");return 1;}else{return -1;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com