/*
读入一些整数,逆序输出到一行中。已知整数不超过100个
*/
/*
关键:
1 while(EOF != scanf("%d",&iArr[i++])),因为i自动加1多加一次,按ctrl+z又多加一次,所以i--要执行两次。fout << iArr[i] << " ";要加空格
2 #define MAXSIZE 100 + 10 //+10是保险
3 全局数组能声明的大小很大,而通过栈声明的数组容量稍大就会直接退出
4 数组拷贝用memcpy函数,void* memcpy(void* to,const void* from,size_t count)。memcpy(iArrB,iArrA,100);
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
#define MAXSIZE 100 + 10 //+10是保险
int arr[1000000];
void reverseOutput()
{
ifstream fin("in.txt");
ofstream fout("out.txt");
int iArr[MAXSIZE];
int i = 0;
while(EOF != scanf("%d",&iArr[i++]))
{
}
int iCount = 0;
i--;//刚才多加了一次
i--;//因为按ctrl+z又多加了一次
while(i >= 0)
{
if((iCount + 1)%10 == 0)
{
printf("\n");
}
printf("%d ",iArr[i]);
i--;
}
}
void reverseOutput_file()
{
//int arra[1000000];
ifstream fin("in.txt");
ofstream fout("out.txt");
int iArr[MAXSIZE];
int i = 0;
while(fin >> iArr[i++])
{
}
int iCount = 0;
i--;//刚才多加了一次
i--;
while(i >= 0)
{
if((iCount + 1)%10 == 0)
{
fout << "\n";
}
fout << iArr[i] << " ";
i--;
}
}
void copyArr()
{
int iArrA[100];
int iArrB[100];
for(int i = 0 ; i < 100; i++)
{
iArrA[i] = i;
}
memcpy(iArrB,iArrA,sizeof(int)*100);
for(int i = 0 ; i < 100; i++)
{
printf("%d ",iArrB[i]);
}
}
int main(int argc,char* argv[])
{
//reverseOutput();
reverseOutput_file();
copyArr();
system("pause");
return 0;
}
算法竞赛入门经典: 第三章 数组和字符串 3.1逆序输出
最新推荐文章于 2022-03-13 23:00:18 发布