当前位置:   article > 正文

C基础day7

C基础day7

一、思维导图

二、课后练习

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

  1. #include<myhead.h>
  2. #define M 20
  3. int main(int argc, const char *argv[])
  4. {
  5. int sum_a=0,sum_b=0,sum_c=0,sum_d=0;
  6. char str[M];
  7. printf("please enter string:");
  8. gets(str);
  9. //循环判断每个字符
  10. for(int i=0;str[i]!='\0';i++)
  11. {
  12. //字母
  13. if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
  14. sum_a++;
  15. //数字
  16. else if(str[i]>='0'&&str[i]<='9')
  17. sum_b++;
  18. //空格
  19. else if(str[i] == ' ')
  20. sum_c++;
  21. //其他
  22. else
  23. sum_d++;
  24. }
  25. //输出累计数量
  26. printf("字符串中有:字母%d个,数字%d个,空格%d个,其他字符%d个\n",sum_a,sum_b,sum_c,sum_d);
  27. return 0;
  28. }

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

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

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

  1. #include<myhead.h>
  2. int main(int argc, const char *argv[])
  3. {
  4. int arr[4][3];
  5. //二维数组输入
  6. for(int i=0;i<4;i++)
  7. {
  8. for(int j=0;j<3;j++)
  9. {
  10. printf("请输入%d行%d列:",i+1,j+1);
  11. scanf("%d",&arr[i][j]);
  12. }
  13. putchar(10);
  14. }
  15. //二维数组输出
  16. for(int i=0;i<4;i++)
  17. {
  18. for(int j=0;j<3;j++)
  19. {
  20. printf("%d行%d列:%d\n",i+1,j+1,arr[i][j]);
  21. }
  22. putchar(10);
  23. }
  24. //定义一维数组存放二维数组每一行最大值
  25. int brr[4];
  26. //循环二维数组比较选出每一行最大值
  27. for(int i=0;i<4;i++)
  28. {
  29. int max = arr[i][0];
  30. for(int j=1;j<3;j++)
  31. {
  32. if(max<arr[i][j])
  33. max = arr[i][j];
  34. }
  35. brr[i] = max; //将每行最大值存入数组brr
  36. }
  37. //对一维数组进行升序排序
  38. //冒泡排序
  39. for(int i=1;i<4;i++)
  40. {
  41. for(int j=0;j<4-i;j++)
  42. {
  43. if(brr[j]>brr[j+1])
  44. {
  45. int temp = brr[j];
  46. brr[j] = brr[j+1];
  47. brr[j+1] = temp;
  48. }
  49. }
  50. }
  51. printf("冒泡排序升序排序后的结果:");
  52. //循环输出
  53. for(int i=0;i<4;i++)
  54. {
  55. printf("%d\t",brr[i]);
  56. }
  57. putchar(10);
  58. //选择排序
  59. int mini = 0; //记录最值的下标
  60. for(int i=0;i<4;i++) //遍历整个数组找最值
  61. {
  62. mini = i;
  63. //遍历整个数组比较
  64. for(int j=i+1;j<4;j++)
  65. {
  66. if(brr[mini] > brr[j])
  67. {
  68. mini =j; //更新最值下标
  69. }
  70. }
  71. //判断找到的最值是否放在了首位,不是则交换
  72. if(mini !=i)
  73. {
  74. int temp = brr[i];
  75. brr[i] = brr[mini];
  76. brr[mini] = temp;
  77. }
  78. }
  79. //输出一位数组排序后结果
  80. printf("选择排序升序排序后的结果:");
  81. //循环输出
  82. for(int i=0;i<4;i++)
  83. {
  84. printf("%d\t",brr[i]);
  85. }
  86. putchar(10);
  87. return 0;
  88. }

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

  1. #include<myhead.h>
  2. #define MAX 100
  3. int main(int argc, const char *argv[])
  4. {
  5. //提示并输入两个一维数组
  6. int arr1[MAX],arr2[MAX];
  7. int size1=0,size2=0;
  8. printf("please enter arr1 size1:");
  9. scanf("%d",&size1);
  10. printf("please enter arrry1:\n");
  11. for(int i=0;i<size1;++i)
  12. {
  13. printf("请输入第个%d元素:",i+1);
  14. scanf("%d",&arr1[i]);
  15. getchar();
  16. }
  17. printf("please enter arr2 size2:\n");
  18. scanf("%d",&size2);
  19. printf("please enter arrry2:");
  20. for(int i=0;i<size2;++i)
  21. {
  22. printf("请输入第个%d元素:",i+1);
  23. scanf("%d",&arr2[i]);
  24. getchar();
  25. }
  26. //遍历两个数组比较得出交集
  27. //定义一位数组存储交集
  28. int brr[MAX];
  29. int k =0;
  30. for(int i=0;i<size1;i++)
  31. {
  32. for(int j=0;j<size2;j++)
  33. {
  34. if(arr1[i] == arr2[j])
  35. {
  36. brr[k] = arr1[i];
  37. k++;
  38. }
  39. }
  40. }
  41. //输出交集数组brr
  42. printf("两数组交集为:");
  43. for(int i=0;i<k;i++)
  44. {
  45. printf("%d\t",brr[i]);
  46. }
  47. return 0;
  48. }

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

  1. #include<myhead.h>
  2. void regis();
  3. int login();
  4. char old_user[32];
  5. char old_passwd[32];
  6. char new_user[32];
  7. char new_passwd[32];
  8. int main(int argc, char const *argv[])
  9. {
  10. int a,res;
  11. while(1){ //循环执行
  12. printf("***********");
  13. printf("1.注册 2.登录");
  14. printf("***********\n");
  15. scanf("%d",&a);
  16. switch(a){
  17. case 1:
  18. regis();
  19. break;
  20. case 2:
  21. while (1)
  22. {
  23. res = login();
  24. if (res==1)
  25. {
  26. return 0;
  27. }else
  28. {
  29. printf("请重新输入\n");
  30. }
  31. }
  32. break;
  33. default:
  34. break;
  35. }
  36. }
  37. return 0;
  38. }
  39. void regis(){
  40. printf("请输入注册帐号\n");
  41. scanf("%s",old_user);
  42. printf("请输入注册密码\n");
  43. scanf("%s",old_passwd);
  44. }
  45. int login(){
  46. printf("请输入登录帐号\n");
  47. scanf("%s",new_user);
  48. printf("请输入登录密码\n");
  49. scanf("%s",new_passwd);
  50. if (strcmp(old_user,new_user) == 0 && strcmp(old_passwd,new_passwd) == 0)
  51. {
  52. printf("登录成功\n");
  53. return 1;
  54. }else{
  55. return -1;
  56. }
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/823546
推荐阅读
相关标签
  

闽ICP备14008679号