#include<stdio.h>
//打印标准输出行,加上行号
void Print()
{
int line = 1;
int ch;
int flg = 1;//1代表在行的开始 0代表不在行的开始
while((ch = getchar()) != EOF)//EOF:测试文件尾
{
if(flg == 1)
{
if(ch == 'q' || ch == 'Q') {return;}//遇q结尾
printf("%d: ",line);//打印行
line++;
flg = 0;
}
if(ch == '\n')
{
flg = 1;
}
putchar(ch);//输出行值
}
}
//从标准输入中读入字符,并计算checksum的值
int CheckSum()
{
int ch;
signed char sum = -1;
while((ch = getchar()) != '\n')
{
sum += ch;
printf("%c",ch);
}
sum += '\n';
//Hello world!102
return sum;
}
//一个有序数组,两个值相加,和为key 把这两个下标保存下来
void SumK(int *arr,int key,int *num1,int *num2,int len)
{
int low = 0;
int high = len-1;
int sum = 0;
while(low < high)
{
sum = arr[low] +arr[high] ;
if(sum == key)
{
*num1 = low;
*num2 = high;
break;
}
else if(sum < key)//15 < 20
{
low++;
}
else
{
high--;
}
}
}
int main()
{
int arr[] = {4,6,8,9,10,11,13,23};
int len = sizeof(arr)/sizeof(arr[0]);
int index1 = -1;
int index2 = -1;
SumK(arr,21,&index1,&index2,len);
printf("%d,%d\n",index1,index2);
/*Print();
printf("%d\n",CheckSum());*/
getchar();
return 0;
}
C语言:EOF用法、保存下标
最新推荐文章于 2022-11-21 18:29:58 发布