1.第一题的关键是需要想到用switch函数来解决问题,别把问题想的太复杂。
#include<stdio.h> char name[4]; void fun1() { printf("请选择第二个字母h/o/e: "); fflush(stdin); if(name[1]=='o') name[1]=getchar(); {name[2]='u';name[3]='o';} if(name[1]=='e') {name[2]='a';name[3]='o';} if(name[1]=='h') { printf("请选择第三个字母o/e: "); fflush(stdin); name[2]=getchar(); if(name[2]=='o') name[3]='u'; if(name[2]=='e') name[3]='a'; } } void fun2() { printf("请选择第二个字母h/o/e: "); fflush(stdin); name[1]=getchar(); if(name[1]=='u') {name[2]='o';name[3]='u';} if(name[1]=='e') {name[2]='a';name[3]='o';} if(name[1]=='h') { printf("请选择第三个字母o/e: "); fflush(stdin); name[2]=getchar(); if(name[2]=='o') name[3]='u'; if(name[2]=='e') name[3]='a'; } } int main(void) { printf("请选择首字母t/y/s: "); name[0]=getchar(); switch(name[0]) { case 't':fun1();break; case 'y': { printf("请选择第二个字母a/u: "); fflush(stdin); name[1]=getchar(); if(name[1]=='a') {name[2]='o';name[3]='u';} if(name[1]=='u') {name[2]='o';name[3]='u';} }break; case 's': fun2();break; } printf("给孩子名字取三(y)/四(n)个字母,请选择:"); fflush(stdin); switch(getchar()) { case 'y': printf("%c%c%c\n",name[0],name[1],name[2]);break; case 'n': printf("%c%c%c%c\n",name[0],name[1],name[2],name[3]); } return 0; }
2.第二题最简单,一个for循环就能解决了。
# include <stdio.h> int main(void) { int i,val; int sum=0; int j=0; scanf("%d",&val); for(i=1; i<=val; ++i) { j+=i; sum+=j; } printf("\n%d\n",sum); return 0; }