1.任意输入两个数和一个运算符, 输出运算结果。
void mySwitchTest()
{
printf("请输入±/其中一个字符\n");
char operator = getchar();// 运算符
int s1 = 0;
int s2 = 0;
printf(“请输入两个数:”);
scanf(“%d %d”, &s1, &s2);
int y;
int flag = 1;//执行±/
switch (operator)
{
case ‘+’:
y = s1 + s2;
break;
case ‘-’:
y = s1 - s2;
break;
case ‘*’:
y = s1 * s2;
break;
case ‘/’:
y = s1 / s2;
break;
printf(“结果为:%d”, y);
default:
flag = 0;
}
if (flag)
{
printf(“结果为:%d”, y);
}
else
{
printf(“error!”);
}
}
2.switch case练习
void test727()
{
// 1.看程序,写结果。
int x = 1;
int y = 0;
switch (x)
{
case 1:
switch (y)
{
case 0:
printf(“1”);
break;
case 1:
printf(“2”);
break;
}
case 2:
printf(“3”);
break;
}
}
3.while与++
int x = 0;
while (x++ < 10000)
{}
printf(“x=%d”, x);
//结果为:10001,判断时候执行了
// n!
int product = 1;// 乘积
int num = 0;
printf(“请输入一个数,我将对该数求阶乘”);
scanf(“%d”,&num);
int i = 1;
while(i<=num)
{
product*=i;
++i;
}
printf(“阶乘为:%d”,product);
4.冒泡
void bubbling()
{
int arr[8] = {8, 7, 6, 5, 4, 3, 2, 1};
int len = sizeof(arr) / sizeof(arr[0]);// 个数
// //交换
// for (int i = 0; i < len - 1; ++i)
// {
// for (int j = 0; j < len - i - 1; ++j)
// {
// if (arr[j] > arr[j + 1])
// {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
//优化交换(当发现其中某次没有进行过一次交换,则证明顺序已排好,直接跳出去)
for (int i = 0; i < len - 1; ++i)
{
int flag = 1;
for (int j = 0; j < len - i - 1; ++j)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = 0;
}
}
if (flag)
{
break;//证明没有进入过交换,即顺序已经好了。
}
}
printf("改变后数组为:");
for (int i = 0; i < len; ++i)
{
printf("%d ", arr[i]);
}
}
5.七上八下,十五月亮十六⚪,颠三倒四。
// 7输出⬆,8输出⬇,15输出月亮16输出⚪,3输出4,4输出3
void sevenUPEightDown()
{
for (int i = 1; i <= 16; ++i)
{
if (3 == i)
{
printf("%d “, i + 1);
}
else if (4 == i)
{
printf(”%d ", i - 1);
}
else if (15 == i)
{
printf("月亮! “);
}
else if (16 == i)
{
// printf(”%c ",9);
printf("⚪ “);
}
else if (7 == i)
{
// printf(”%c ",24);
printf("⬆ “);
}
else if (8 == i)
{
// printf(”%c ",25);
printf("⬇ “);
}
else
{
printf(”%d ", i);
}
}
}
6.逢七过
void everySevenJump()
{
for (int i = 1; i < 101; ++i)
{
int j = i;
if (0 == j % 7 || 7 == j % 10 || 7 == j / 10)// 七的倍数 || 尾数是7 || 十位是7
//if ((7 == j % 10) || ((0 == j / 7) && j > 7) || (j % 7 == 0) || j / 10 ==7)// 第一次做,正确但乱
{
printf("过!\t");
//多了个continue;导致70行没有换行。
}
else
{
printf("%d\t", i);
}
if (0 == i % 10)
{
printf("\n");
}
}
}
7.给定一个数组int nums[6]={1,2,4,5,3},请输入插入的位置和值,将值插入到指定位置之前.
void test727Down()
{
// int nums[5] = {1, 2, 4, 5, 3};
// printf(“请输入插入位置和对应的值:”);
// int place = 0; // 位置
// int number = 0; // 值
// scanf(“%d %d”, &place, &number);
//
// // 创建一个比原数组长度大1的数组
// int arr[sizeof(nums) / sizeof(nums[0]) ] = {0};
//
//
// // 把原数组值存放进去
// for (int i = 0; i < sizeof(nums) / sizeof(nums[0]); ++i)
// {
// arr[i] = nums[i];
// }
//
// //后推并插入
// for (int i = sizeof(nums) / sizeof(nums[0]); i > place-1; --i)
// {
// if (i == place - 1)
// {
// arr[i] == number;
// }
// arr[i] = arr[i - 1];
// }
//
// // 打印新数组
// printf(“打印新数组”);
// for (int i = 0; i < sizeof(nums) / sizeof(nums[0]) + 1; ++i)
// {
// printf("%d ",arr[i]);
// }
int nums[6] = {1, 2, 4, 5, 3, 0};
printf("请输入插入位置和对应的值:");
int place = 0; // 位置
int number = 0; // 值
scanf("%d %d", &place, &number);
int len = sizeof(nums) / sizeof(nums[0]);
for (int i = len - 1; i > place - 1; --i)
{
nums[i] = nums[i - 1];
}
nums[place - 1] = number;
// 打印新数组
printf("打印新数组");
for (int i = 0; i < len; ++i)
{
printf("%d ", nums[i]);
}
}
8.给定一个数组 int nums[5]={1,2,4,5,3},请输入要删除的位置,
// 将数组中对应位置的值删除后,其余元素前移。
void deleteArray()
{
int nums[5] = {1, 2, 4, 5, 3};
printf("请输入删除位置:");
int place = 0; // 位置
scanf("%d", &place);
int len = sizeof(nums) / sizeof(nums[0]);// 5
for (int i = place - 1; i < len - 1; ++i)// // 错误:i<len-2
{
nums[i] = nums[i + 1];
}
// 打印新数组
printf("打印新数组");
for (int i = 0; i < len - 1; ++i)
{
printf("%d ", nums[i]);
}
}
9.输入一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并输出它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
void arraySum()
{
int arr[10] = {0};
int num = 0;
int target = 0;
printf("\n请输入目标值:");
scanf("%d", &target);
printf("请输入十位数");
// 9 1 11 12 13 14 15 16 17 18
// 7 3 2 8 11 12 13 14 15 16
for (int i = 0; i < 10; ++i)
{
scanf("%d", &arr[i]);// 错误:arr[i] = scanf("%d",&num);
}
//打印
printf("打印:");
for (int i = 0; i < 10; ++i)
{
printf("%d ", arr[i]);
}
int flag = 0;
for (int i = 0; i < 10 - 2; ++i)
{
for (int j = i + 1; j < 10 - 1; ++j)
{
if (arr[i] + arr[j] == target)
{
printf("\n[%d,%d]\n", i, j);
flag = 1;
}
}
}
if (flag == 0)
{
printf("没找到!");
}
}