喜提头条号黄V,有兴趣的朋友可以关注一波,主写IT领域。
习题31
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
实现思路: 使用switch语句,如果第1个字母一样,则判断用情况语句或if语句判断第2个字母。 也可以使用条件判断语句,实现相近。
代码如下:
#include<stdio.h>
int main(){
char i, j;
printf("请输入一个字母:\n");
i = getchar();
getchar();
switch(i){
case 'M':
printf("今天是星期一");
break;
case 'T':
printf("请输入第二个字母:\n");
j = getchar();
switch(j){
case 'u':
printf("今天是星期二");
break;
case 'h':
printf("今天是星期四");
default:
printf("输入错误");
break;
}
break;
case 'W':
printf("今天是星期三");
break;
case 'F':
printf("今天是星期五");
break;
case 'S':
printf("请输入第二个字母:\n");
j = getchar();
switch(j){
case 'a':
printf("今天是星期六");
break;
case 'u':
printf("今天是星期天");
break;
default:
printf("输入错误");
break;
}
break;
default:
printf("输入错误");
break;
}
return 0;
}
打印:
请输入一个字母:
S
请输入第二个字母:
a
今天是星期六
输入第一个字母之后,又输入了回车,所以需要有一个getchar()
函数来接收输入的换行符,后面才能接收到新输入的字符。
习题32
删除一个字符串中的指定字母,如:字符串ACA,删除其中的一个字母。
实现思路: 逐个遍历字符并判断。
代码如下:
#include<stdio.h>
#include <string.h>
int main(){
char originStr[256];
char ch;
int i = 0, j = 0;
printf("Please input a string:\n");
ch = getchar();
while(ch != '\n'){
originStr[i++] = ch;
ch = getchar();
}
printf("Please input the character to delete:\n");
ch = getchar();
for(i = 0; i < strlen(originStr); i++){
if(ch != originStr[i]){
originStr[j++] = originStr[i];
}
}
originStr[j] = '\0';
printf("New String is:\n%s\n", originStr);
return 0;
}
打印:
Please input a string:
I like programming!!
Please input the character to delete:
i
New String is:
I lke programmng!!
习题33
判断一个数是否为质数。
实现思路: 抽离用函数实现。
代码如下:
#include <stdio.h>
#include <math.h>
int main(){
int isPrime(int n);
int num;
printf("Please input a number:\n");
scanf("%d", &num);
int result = isPrime(num);
if(result){
printf("%d is a prime number\n", num);
}
else{
printf("%d is not a prime number\n", num);
}
return 0;
}
int isPrime(int n){
int i, prime = 1;
for(i = 2; i <= sqrt(n); i++){
if(n % i == 0){
prime = 0;
}
}
return prime;
}
打印:
Please input a number:
125
125 is not a prime number
习题34
实现函数的多层调用。
实现思路: 多层调用即可。
代码如下:
#include <stdio.h>
int main(){
void hello_3();
hello_3();
return 0;
}
void hello_3(){
void hello(int n);
int i;
for(i = 0; i < 10; i++){
hello(i);
}
}
void hello(int n){
printf("%d.Hello World!!!\n", n);
}
打印:
0.Hello World!!!
1.Hello World!!!
2.Hello World!!!
3.Hello World!!!
4.Hello World!!!
5.Hello World!!!
6.Hello World!!!
7.Hello World!!!
8.Hello World!!!
9.Hello World!!!
习题35
字符串反转,如将字符串
blog.csdn.net/CUFEECR
反转为RCEEFUC/ten.ndsc.golb
。
实现思路: 使用指针实现,即交换字符串中字符的指针。
代码如下:
#include <stdio.h>
int main(){
void reverse(char* s);
char s[] = "I love C";
printf("%s =>\n", s);
reverse(s);
printf("%s\n", s);
return 0;
}
void reverse(char* s){
int len = 0;
char* p = s;
while (*p != 0){
len++;
p++;
}
int i = 0;
char c;
while (i <= len / 2 - 1){
c = *(s + i);
*(s + i) = *(s + len - 1 - i);
*(s + len - 1 - i) = c;
i++;
}
}
打印:
I love C =>
C evol I
本文原文首发来自博客专栏C语言实战,由本人转发至https://www.helloworld.net/p/gRDSa3hzOF2P,其他平台均属侵权,可点击https://blog.csdn.net/CUFEECR/article/details/106626151查看原文,也可点击https://blog.csdn.net/CUFEECR浏览更多优质原创内容。