#include<stdio.h>
int main()
{
char ch=0;
//EOF--end of file(文件结束标志)
while((ch=getchar())!=EOF)//通过键盘接收字符,当接收字符为EOF时候不在接收
{
putchar(ch);//打印所接收的字符
}
return 0;
}
结束循环ctrl+z
实际用途
#include<stdio.h>
int main()
{
int password[20]={0},ch=0;
int sh=0;
printf("请输入密码\n");
scanf("%d",&password);
while((sh=getchar())!='\n');
printf("请确认(N\Y)");
if((ch=getchar())=='Y')
{
printf("确认成功\n");
}
else
{
printf("放弃确认\n");
}
return 0;
}
#include<stdio.h>
//仅输出1到9的字符
int main()
{
int ch=0;
while((ch=getchar())!=EOF)
{
if(ch<'0'||ch>'9')
continue;
putchar(ch);
}
return 0;
}
#include<stdio.h>
int main()
{
int i=0;
for(i=0;i<=10;i++)
{
printf("%d\n",i);
}
return 0;
}
#include<stdio.h>
int main()
{
int i=0,j=0;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
printf("wang ");
}
}
return 0;
}
#include<stdio.h>
int main()
{
int i=0,j=0;
for(;i<10;i++)
{
for(;j<10;j++)
{
printf("wang ");
}
}
return 0;
}
循环0次
int main()
{
int n=0;
int i=0,arrt=1;
printf("请输入n的值\n");
scanf("%d ",&n);
for(i=1;i<n+1;i++)
{
arrt=i*arrt;
}
printf("n!=%d\n",arrt);
return 0;
}
T2
(错误代码,arrt)
#include<stdio.h>
int main()
{
int n=0;
int i=0,arrt=1,sum=0;
for(n=1;n<11;n++)
{
for(i=1;i<n+1;i++)
{
arrt=i*arrt;
}
sum+=arrt;
}
printf("sum=%d\n",sum);
return 0;
}
#include<stdio.h>
int main()
{
int n=0;
int i=0,arrt=1,sum=0;
for(n=1;n<11;n++)
{
arrt=1;
for(i=1;i<n+1;i++)
{
arrt=i*arrt;
}
sum+=arrt;
}
printf("sum=%d\n",sum);
return 0;
}
优化后代码
T3
#include<stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
int k=16;
for(i=0;i<10;i++)
{
if(a[i]==k)
{
printf("找到了下标是%d\n",i);
}
}
printf("没有该值\n");
return 0;
}
优化该代码
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int k=7;
int sz=sizeof(arr)/sizeof(arr[0]);//计算元素个数
int left=0;//左下标
int right=sz-1;//右下标
while(left<=right)
{
int mid=(left+right)/2;
if(arr[mid]>k)
{
right=mid-1;
}
else if(arr[mid]<k)
{
left=mid+1;
}
else
{
printf("找到了,下标是:%d\n",mid);
break;
}
}
if(left>right)
{
printf("找不到");
}
}
T4
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
int main()
{
char arr1[]="welcome to c++!!!!!!!";
char arr2[]="#####################";
int left = 0;
//int right=sizeof(arr1)/sizeof(arr1[0])-2;err
int right=strlen(arr1)-1;
while(left<=right)
{
arr2[left]=arr1[left];
arr2[right]=arr1[right];
printf("%s\n",arr2);
//休息一秒
Sleep(1000);
system("cls");//执行系统命令的一个函数——cls——清空屏幕
left++;
right--;
}
printf("%s\n",arr2);
return 0;
}
T5
#include<stdio.h>
#include<string.h>
int main()
{
int i=0;
char password[20]={0};
for(i=0;i<3;i++)
{
printf("请输入密码;");
scanf("%s",password);
if(strcmp(password,"123456")==0)//==不能用来比较2个字符窜是否相等,应该使用一个库函数——strcmp
{
printf("登录成功\n");
break;
}
else
{
printf("密码错误\n");
}
}
if(i==3)
printf("三次密码均错误,退出程序\n");
return 0;
}