① 在c语言中如何实现“让一句话在屏幕上重复不断的打印出来直至我设置的那个时间点结束”
// 参数:年、月、日、时、分、秒和你要显示的那句话
void MyPrint(int year, int month, int day, int hour, int minute, int second, char *text)
{
while (text != NULL)
{
time_t t = time(NULL);
struct tm *now = localtime(&t);
if (year - 1900 == now->tm_year && month - 1 == now->tm_mon && day == now->tm_mday
&& hour == now->tm_hour && minute == now->tm_min && second == now->tm_sec)
{
break;
}
else
{
printf("%s\n", text);
}
}
}
// 使用
int main()
{
// 在2012年5月18日12点以前,一直打印"Hello World"这句话
MyPrint(2012, 5, 18, 12, 0, 0, "Hello World");
return(0);
}
② c语言编程:输出数组中重复出现的数
#include<stdio.h>
intmain()
{inti,j,k=0,k1,p,a[10],b[5];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[j]==a[i])
{p=1;
for(k1=0;k1<k;k1++)
if(a[i]==b[k1])p=0;
if(p)
{printf("%d",a[i]);
b[k++]=a[i];
}
};
return0;
}
③ 用C语言编写程序,找出用户输入的两个字符串中相同的子串,要求此输出的字符串中无重复的子串
//利用经典的大数据处理算法bloomfilter进行两个集合中相同元素的查找,去重
#include<stdio.h>
#include<string.h>
unsignedcharmask[8]={128,64,32,16,8,4,2,1};
//简单的哈希算法
inthashfuc(char*s,intkey)
{
inti,seed[4]={5,7,11,13},value=0;
if(key>=4)key%=4;
for(i=0;s[i];i++)
value+=s[i]*seed[key];
returnvalue;
}
//利用bloomfilter算法将字符串s映射到位数组m中,并去掉重复的子串
voidbloomfilter(unsignedchar*m,char*s)
{
inti,j,hvalue,brepeat;
charsubstr[32];
for(i=j=0;;i++){
if(s[i]!=''&&s[i]!=' '&&s[i]!=0)
substr[j++]=s[i];
else{
substr[j]=0;
brepeat=1;
for(j=0;j<4;j++){
hvalue=hashfuc(substr,j)&0X7F;
if((m[hvalue>>3]&mask[hvalue&7])==0){
m[hvalue>>3]|=mask[hvalue&7];
brepeat=0;
}
}
//如果是重复子串
if(brepeat==1){
j=strlen(substr);
strncpy(s+i-j,s+i+1,strlen(s)-i);
//printf("有重复子串%s,去重后是%s ",substr,s);
i=i-j-1;
}
if(s[i]==0)break;
j=0;
}
}
}
intmain()
{
chars1[256],s2[256],substr[32];
inti,j,hvalue;
unsignedcharm1[16]={0},m2[16]={0},m3[16];
printf("Firststring ");
gets(s1);
printf("Secondstring ");
gets(s2);
bloomfilter(m1,s1);
bloomfilter(m2,s2);
//求两个位数组的交集,子串能够映射到交集说明是相同的子串
for(i=0;i<16;i++){
m3[i]=m1[i]&m2[i];
//printf("%02x%02x%02x ",m1[i],m2[i],m3[i]);
}
printf(" 相同的子串有:");
j=0;
//只需要对一个字符串进行映射,只要能映射到交集的就是子串
for(i=0;;i++){
if(s1[i]!=''&&s1[i]!=' '&&s1[i]!=0)
substr[j++]=s1[i];
else{
substr[j]=0;
for(j=0;j<4;j++){
hvalue=hashfuc(substr,j)&0X7F;
if((m3[hvalue>>3]&mask[hvalue&7])==0)break;
}
if(j==4)printf("%s",substr);
if(s1[i]==0)break;
j=0;
}
}
printf(" ");
}
④ C语言程序重复执行的语句
例如:
#include<stdio.h>
intmain(void)
{
charc;
c=getchar();
while(c!='')//输入空格退出
{
printf("%c",c);//这里改成你需要的那个函数做相应的工作就可以了
c=getchar();
}
return0;
}
(4)一句话在c语言中重复编程扩展阅读
C语言循环控制语句
#include<stdio.h>
intmain(){
inta;
/*forloopexecution*/
for(a=10;a<20;a=a+1)
{
printf("valueofa:%d ",a);
}
return0;
}
C编程语言中do...while循环的语法是-
do{
statement(s);
}while(condition);