首页 > 学院 > 开发设计 > 正文

C primer plus 第八章 字符输入输出与输入验证 编程练习 个人答案

2019-11-06 06:58:21
字体:
来源:转载
供稿:网友
// 第八章 字符输入,输出和输入验证.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<string.h>#include<stdlib.h>#include<ctype.h>int i = 0;char ch = '/0';void introduction();void fun_1();void fun_2();void fun_3();void fun_4();void fun_5();char fun_6();void fun_8();int main(){introduction();while (scanf("%d", &i) == 1){getchar();switch (i){case 1:system("cls"); fun_1(); system("cls"); break;case 2:system("cls"); fun_2(); system("cls"); break;case 3:system("cls"); fun_3(); system("cls"); break;case 4:system("cls"); fun_4(); system("cls"); break;case 5:system("cls"); fun_5(); system("cls"); break;case 6:system("cls"); PRintf("%c",fun_6()); system("cls"); break;case 8:system("cls"); fun_8(); system("cls"); break;default:printf("erroe number,please reinput/n");}introduction();}}void introduction(){printf("please input the number before the sentence to run the progress if you want/n""press any other key to quit/n");printf("1:输入直到EOF结束/n""2:输入一段字符,输出字符数,每一个字符的ASCLL码,每行打印10字符/n""3:输入一段字符,输出其中大写字母与小写字母的输入/n""4:输入一段字符,输出平均每个单词的字符数/n""5:一个猜数字程序,使用二分法/n""6:输入一段字符,返回第一个非空白字符/n""7:略/n""8:支持加减乘除的计算机/n");}void fun_1(){int i = 0;char str[100];printf("please input /"ctrl + z/" at last new row/n");for (; (str[i] = getchar()) != EOF; i++){;}str[i + 1] = '/0';puts(str);system("pause");}void fun_2(){int i = 0;char str[100];printf("please input /"ctrl + z/" at last new row/n");for (; (str[i] = getchar()) != EOF; i++){;}str[i + 1] = '/0';int i_count_char = strlen(str);for (i = 0; i < i_count_char; i++){printf("%c ",str[i]);if ((i + 1) % 10 == 0) { printf("/n"); }} printf("/n");for (i = 0; i < i_count_char; i++){if ((i + 1) % 10 == 0) { printf("/n"); }printf("%d ", str[i]);}system("pause");}void fun_3(){int i_lower_alphabet = 0, i_upper_alphabet = 0;char str[100]="/0";for(i=0;(str[i]=getchar())!=EOF;i++){if (str[i]>='A'&&str[i]<='Z') { i_upper_alphabet++; }if (str[i] >= 'a'&&str[i] <= 'z'){ i_lower_alphabet++; }}printf("lower aphabet:%d upper aphabet:%d", i_lower_alphabet, i_upper_alphabet);system("pause");}void fun_4(){int i_count_Wordnumber = 0;//单词数int i_count_word = 0, i_count_eachword=0;//总单词字母数和单个单词字母数char str[100]="/0";int flag = 0;//单词内为1,其他为0,一开始为0for (i = 0; (str[i] = getchar()) != EOF; i++){if (str[i] >= 'A'&&str[i] <= 'Z'|| str[i] >= 'a'&&str[i] <= 'z'){ if (flag == 0) { i_count_wordnumber++;} flag = 1; i_count_eachword++; }else { flag = 0;i_count_word+=i_count_eachword,i_count_eachword=0; }}printf("average alphabet in each word:%d/n", i_count_word / i_count_wordnumber);system("pause");}void fun_5(){int* fun_5_select(int num[]);int i_choose_num = 1000,up_limit=1000,low_limit=0;int num[3]; num[0] = i_choose_num, num[1] = up_limit; num[2] = low_limit;printf("welcome!please prpare a number and i will guess it/n""press any other key except 'l' and 'u'to quit/n""/nAre you ready?/n");while(num[0]!=0){fun_5_select(num);}}int* fun_5_select(int num[]){printf("%d?/n",num[0]);printf("if it is,input 'y/n'""if it lower,input alphabet 'l',if it upper,input 'u'/n");scanf("%c", &ch); getchar();if (ch == 'y'){printf("continue?input 'y',or press any other key/n");if (scanf("%c", &ch) == 'y') { getchar(); num[0] = 1000; }else { getchar(); num[0] = 0; return num; }}else if (ch == 'l'){num[1] = num[0];num[0] = (num[1]+ num[2]) / 2;printf("%d?/n", num[0]);return num;}else if (ch == 'u') {num[2] = num[0];num[0] = (num[1] + num[2]) / 2;printf("%d?/n", num[0]);return num;}else { num[0] = 0; return num; }}char fun_6(){while (1){ch = getchar();if (ch == '/0') { ; continue; }else if (ch == ' ') { continue; }else {printf("%c", ch); system("pause"); return ch;}};}void fun_8(){int flag = 0;int result = 0;int num[100] = { '/0' };char ch[100]="/0";printf("press any other key with no relationship with calculation to quit/n");scanf("%d", &result); for(i=0; 1;i++){if (scanf("%c", &ch[i]) != 1) { break; };if (scanf("%d", &num[i]) != 1) {break;};getchar();  if (ch[i] == '+') { result += num[i]; printf("%d/n", result); break;}else if (ch[i] == '-') { result -= num[i]; printf("%d/n", result); break;}else if (ch[i] == '*') { result *= num[i]; printf("%d/n", result);break;} else if (ch[i] == '/') { if (num[i] <= 0) { printf("erroe/n"); system("pause"); break; }result /= num[i]; printf("%d/n", result); }};}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表