1、/*在数组中随机输入10个整数,然后按倒序打印这10个数(排序)*/
#include <stdio.h>
int main ()
{
int a[10], i, j, s; //s用于交换两个数
printf ("请随机输入10个数:\n");
for (i = 0; i < 10; i++) //输入10 个数
{
scanf ("%d",&a[i]);
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (a[j] > a[j+1])
{
s = a[j];
a[j] = a[j+1];
a[j+1] = s;
}
}
}
for (i = 9; i >= 0; i--) //输出10个数
{
printf ("%d ",a[i]);
}
printf ("\n");
return 0;
}
2、/*求0-99中有多少个数字9*/
#include <stdio.h>
int main ()
{
int ge, shi, count, i;
count = 0;
for (i = 0; i < 100; i++)
{
shi = i / 10;
ge = i % 10;
if (ge == 9)
{
count++;
}
if (shi == 9)
{
count++;
}
}
printf ("%d\n",count);
return 0;
}
3、/*随机输入一串数组,将其中的小写字母转换成大写字母*/
#include <stdio.h>
int main ()
{
char a[20];
int i;
scanf ("%s",a);
for (i = 0; a[i] != '\0'; i++)
{
if (a[i] <= 'z' && a[i] >= 'a')
{
a[i] -= 32;
}
}
printf ("%s\n",a);
return 0;
}
4、/*****************************************************
> File name: prove.c
> Author: Mr.SUN
> 日期: 2017-12-09 11:34
> 验证:“”任一大于2的偶数,都可以表示成两个素数之和“
*****************************************************/
#include <stdio.h>
#include <math.h>
int su ();
int main()
{
int z, i;
printf ("请输入一个大于2的偶数:");
scanf ("%d",&z);
for (i = 2; i < z / 2; i++)
{
if (su (i) && su(z-i))
{
printf ("%d = %d + %d\n",z, i, z-i);
}
}
return 0;
}
int su (int x) //判断一个数是不是素数
{
int flag; //返回值,1表示是素数,0表示不是素数。
int i;
int s;
flag = 1;
s= sqrt (x);
for (i = 2; i <= s; i++)
{
if (x %i == 0)
{
flag = 0;
break;
}
}
return flag;
}
5、/*30个人(编号1~30),从1开始报数,报到7的退出,剩下的人继续从1开始报数,
求剩余最后一个人的编号(约瑟夫问题)。
*/
(1)
#include <stdio.h>
#define N 30 //定义总人数,这里为30人
int num (int a[]); //判断数组的数是否为0,并返回不为0的数的个数。
int main ()
{
int a[N];
int count, i;
count = 0;
for(i = 0; i < N; i++) //给数组里的N个元素赋值1
{
a[i] = 1;
}
while (num (a) > 1) //判断数组里不等于0的元素的个数
{
for (i = 0; i < N; i++)
{
if(a[i])
{
count++;
}
if (count == 7)
{
count = 0;
a[i] = 0;
}
}
}
for (i = 0; i < N; i++)
{
if (a[i] != 0)
{
printf ("最后一个人的编号为%d\n",i+1);
}
}
return 0;
}
int num (int a[]) //判断数组的数是否为0,并返回不为0的数的个数。
{
int num, i;
num = 0;
for (i = 0; i < N; i++)
{
if (a[i] != 0)
{
num++;
}
}
return num;
}
(2)
#include <stdio.h>
#define N 30 //定义总人数,这里为30人。
int main ()
{
int a[N];
int count, i, num;//count计数,到7赋为0。num用来判断数组里不为0的数的个数
count = 0;
num = N;
for(i = 0; i < N; i++) //给数组里的N个元素赋值1
{
a[i] = 1;
}
while (num > 1) //判断数组里不等于0的元素的个数
{
for (i = 0; i < N; i++)
{
if(a[i])
{
count++;
}
if (count == 7)
{
count = 0;
a[i] = 0;
num--;
}
}
}
for (i = 0; i < N; i++)
{
if (a[i] != 0)
{
printf ("最后一个人的编号为%d\n",i+1);
}
}
return 0;
}