1、 在数组中随机输入10个整数,然后按倒序打印这10个数(排序)。
#include<stdio.h>
int main()
{
int a[10],i,j,tmp;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
for(j=0;j<10-i;j++)
{
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
2、 求0~99中有多少个数字‘9’。
#include<stdio.h>
int main()
{
inti,sum=0;
for(i=0;i<100;i++)
{
if(i>=0&&i<=9)
{
if(i==9)
sum++;
}
if(i>=10&&i<=99)
{
if(i%10==9)
{
sum++;
}
if(i/10==9)
{
sum++;
}
}
}
printf("%d",sum);
return 0;
}
3、 随机输入一串字符,将其中的小写字母转化成大写字母。
#include<stdio.h>
void fun(char *a);
int main()
{
char a[100];
scanf("%s",a);
fun(a);
printf("%s",a);
return 0;
}
void fun(char *a)
{
int i=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z')
{
a[i]-='a'-'A';
}
}
}
4、 验证:“任一大于2的偶数,都可表示成两个素数之和”。
#include<stdio.h>
int array(int x)
{
int i,r;
for(i=2;i<=x;i++)
if(x%i==0) break;
if(i<x) r=0;
else r=1;
return r;
}
int main()
{
int i,j,k,x;
scanf("%d",&x);
if(x%2!=0)
{
printf("bu shi ou shu");
}
if(x%2==0&&x>2)
{
for(j=2;j<x;j++)
{
if(array(j)==1)
{
k=x-j;
if(array(k)==1)
{printf("%d+%d\t",j,k);break;}
}
}
}
return 0;
}
5、 问题描述:30个人(编号1~30),从1开始报数,报到7的退出,剩下的人继续从1开始报数。求剩余最后一个人的编号(约瑟夫问题)。
#include<stdio.h>
int main()
{
int count=0,i,a[30],num=30;
for(i=0;i<30;i++)
{
a[i]=1;
}
while(num>=2)
{
for(i=0;i<30;i++)
{
if(a[i]!=0)
{
count++;
}
if(count%7==0 && a[i]==1)
{
a[i]=0;
count=0;
num--;
}
}
}
for(i=0;i<30;i++)
{
if(a[i]==1)
printf("%d",i+1);
}
}
6、 整理continue和break的用法。
break和continue都是用来控制循环结构的,主要是停止循环。
1.break
有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。
这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
2.continue
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环