1、翻译密码
翻译规律:用原来字母的第四个字母代替原来的字母。
例如A的第四个字母是E,用E代替A,所以China就翻译成Glmre。
#include<stdio.p>
int main(){
char c;
while ((c = getchar()) != '\n')
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){
// 判断是否为字母
c = c + 4; // 是字母就加4
if (c > 'Z' && c <= 'Z' + 4 || c > 'Z')
c - 26; // 如在字母范围外就减26
}
printf("%c", c);
}
printf("\n");
return 0;
}
// 有一种比较直接的方式就是在输出时输出“C+4“即可
2、范围内奇数的和
编程序实现求1-1000之间的所有奇数的和并输出。
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 1; i < 1000; i += 2) // i = 1 时,循环条件为 (i += 2) 即为奇数判断
{
sum += i; // (sum += i) ==> (sum = sum+i)
}
printf("%d", sum);
return 0;
}
3、分段函数求值
有一个函数: y = { x x<1
| 2x-1 1<=x<10
{ 3x-11 x>=10 写一段程序,输入x,输出y。
#include <stdio.h>
int main()
{
int x, y;
printf("请输入x的值:");
scanf("%d", &x);
if (x < 1)
{
printf("y为:%d", x);
}
else if (x >= 1 && x < 10)
{
printf("y为:%d", 2 * x - 1);
}
else if (x >= 10)
{
printf("y为:%d", 3 * x - 11);
}
return 0;
}
4、斐波那契数列
实现从1到100相加
#include<stdio.h>
int main(){
int sum1,sum2 = 0,sum3,i;
/*****NumberOne,用for循环*****/
for(i = 1; i <= 100; i++){
sum1 += i;
}
/*****NumberTwo,用while循环*****/
i = 0;
while (i <= 100){ // while循环是判断条件是否成立(逻辑值为0或1,0不成立)再进入循环
sum2 += i;
i++;
}
/*****NumberThree,用do..while循环*****/
i = 0;
do{ // do..while循环是不看条件先执行一次循环
sum3 += i;
i++;
} while (i <= 100);
printf("从1运行加法运算到100的总和为:\n");
printf("使用for循环:%d\n",sum1);
printf("使用while循环:%d\n",sum2);
printf("使用do..while循环:%d\n",sum3);
return 0;
}
5、个人所得税计算
个人所得税计算,应纳税款的计算公式如下:
1、收入<=1000元部分税率为0%,
2、2000元>=收入>1000元的部分税率为5%,
3、 3000元>=收入>2000元的部分税率为10%,
4、6000元>=收入>3000元的部分税率为15%,
5、收入>6000元的部分税率为20%。
输入某人的收入,计算出应纳税额及实际得到的报酬。(如需连续计算多个人的纳税情况,直到输入负数为止)
#include <stdio.h>
int main()
{
int grade;
float income, tax, money;
printf("please input your income:");
scanf("%f", &income);
if (income < 0)
printf("the input is error!");
else
{
grade = (int)income / 1000; // 2000 / 1000 = 2
switch (grade)
{
case 0:
tax = 0;
break;
case 1:
tax = (income - 1000) * 0.05;
break;
case 2:
tax = 50 + (income - 2000) * 0.1; // (2000元 >= 收入 > 1000元) 即2000和1001的区间
break;
case 3:
tax = 150 + (income - 3000) * 0.15;
break;
default:
tax = 600 + (income - 6000) * 0.2;
}
money = income - tax;
printf("tax=%0.2f,money=%0.2f", tax, money);
}
}
6、for循环输出数组
给数组赋值并逐个输出
#include <stdio.h>
int main()
{
int i, a[10];
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]); // 通过循环i,给数组赋值
}
printf("正序:");
for (i = 0; i < 10; i++)
{
printf("%d\t", a[i]); // 通过循环i,逐个输出数组 (正序)
}
printf("\n");
printf("逆序:");
for (i = 9; i >= 0; i--)
{
printf("%d\t", a[i]);
}
return 0;
}
7、for循环求最大值
* 选择排序,如果arr[i]大于max的值,就将arr[i]的值赋给max;
#include <stdio.h>
int main()
{
int arr[10] = {0};
int max = 0, i;
for (i = 0; i < 10; i++)
{
printf("请输入十位数值,当前第%d位:", i + 1);
scanf("%d", &arr[i]);
}
for (i = 0; i < 10; i++)
{ // 循环比较arr[i]
if (max < arr[i])
max = arr[i];
}
printf("最大值为:%d\n", max);
return 0;
}
8、字符反序输出
#include <stdio.h>
int main()
{
int c1, c2, c3, c4, c5;
printf("请输入五个字符:\n");
scanf("%c %c %c %c %c", &c1, &c2, &c3, &c4, &c5);
printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5);
printf("%c%c%c%c%c\n", c5, c4, c3, c2, c1);
return 0;
}
9、指针变量实现两数互换
#include <stdio.h>
int swap(int *n, int *m);
int main()
{
int a, b;
printf("请输入两位数值:");
scanf("%d %d", &a, &b);
printf("替换前:a是%d,b是%d\n", a, b);
swap(&a, &b);
printf("替换后:a是%d,b是%d\n", a, b);
return 0;
}
int swap(int *n, int *m)
{
int temp;
temp = *n;
*n = *m;
*m = temp;
return *n;
}
10、找出最小值
从4个数中找出最小的数,并显示此数。
#include<stdio.h>
int main()
{
int a,b,c,d,t;
printf("please input a,b,c,d:\n");
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(a>d)
{
t=a;
a=d;
d=t;
}
printf("min = %d\n",a);
}
11、在范围内数值乘积
编程实现求1-10之间所有数的乘积并输出
#include <stdio.h>
int main()
{
int sum = 1, i;
for (i = 1; i <= 10; i++)
{
sum = sum * i;
}
printf("%d\n", sum);
return 0;
}
12、温度转换
#include <stdio.h>
int main()
{
double f, c;
printf("请输入华氏温度:");
scanf("%lf", &f);
c = 5 * (f - 32) / 9; // 温度转换公式
printf("转换后的摄氏度为:%0.2lf\n", c);
return 0;
}
13、统计字符个数
输入一行字符,统计其中有多少个单词,单词之间用空格隔开
#include <stdio.h>
int main()
{
char string[80];
int i, num = 0, sp = 0;
char c;
gets(string);
for (i = 0; (c = string[i]) != '\0'; i++)
{
if (c == ' ')
{
sp++;
}
else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
num++;
}
}
printf("字符共有%d个,空格共有%d个", num, sp);
return 0;
}
14、统计数值个数
从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
#include <stdio.h>
int main()
{
int a[10], i, iNum1 = 0, iNum2 = 0, iNum3 = 0;
for (i = 0; i < 10; i++)
{
printf("请输入十个整数,剩下%d个整数:\n", 10 - i);
scanf("%d", &a[i]);
if (a[i] > 0)
{
iNum1++;
}
else if (a[i] == 0)
{
iNum2++;
}
else
{
iNum3++;
}
}
printf("正数有%d个,负数有%d个,零有%d个\n", iNum1, iNum3, iNum2);
return 0;
}