1.
【问题描述】
输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
【要求】
【数据输入】一个整数N。(N不大于30000)
【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。
解答:
#include <stdio.h>
void main(){
int n,a,b,c,d,s,g,z;
printf("请输入正整数z,7<=z<=30000\n");
scanf_s("%d",&z);
for(n=1;n<=z;n++)
{
a=n%7;
b=n%10;
c=(n-b)%10;
d=(n-b-10*c)%100;
s=(n-b-10*c-100*d)%1000;
g=(n-b-10*c-100*d-1000*s)%1000;
if(a==0 || b==7 || c==7 ||d==7 || s==7 || g==7)
{
printf("%d \n",n);
}
}
getch();
}
运行结果:
2.
【问题描述】
数组排序:自主输入数组,找出第k大的数据,互换到位置k。
【样例输入】:1,54,6,23
【样例输出】:54,23,6,1
解答:
#include <stdio.h>
#define N 80
void main()
{
int i,j,k,n,tmp,imax,max,a[N];
printf("请输入数组长度\n");
scanf_s("%d",&k);
for(i=0;i<k;i++)
{
printf("请输入数字\n");
scanf_s("%d",&a[i]);
}
printf("原始数组为\n");
for(n=0;n<k;n++)
{
printf("%d",a[n]);
}
printf("\n");
for(i=0;i<k;i++)
{
imax=i;max=a[i];
for(j=i+1;j<=k;j++)
{
if(a[i]<a[j])
{
imax=j;
max=a[j];
}
}
if(imax>i)
{
tmp=a[i];
a[i]=a[imax];
a[imax]=tmp;
}
}
printf("排序完成后\n");
for(n=0;n<k;n++)
{
printf("%d ",a[n]);
}
getch();
}
运行结果:
3.
【问题描述】
对于给定的一个字符串,统计其中数字字符出现的次数。
【数据输入】输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串