输入一个正整数repeat (0 输入一个正整数n (1 例:括号内是说明
输入
3 (repeat=3)
5 4 3 5 1 2
4 1 5 6 7
5 5 4 3 2 1
输出
1 3 2 4 5
1 5 6 7
1 4 3 2 5
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, index, n, t;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
index=0;
for(i=1; i<n; i++)
if(a[i]<a[index])
index=i;
t=a[index];
a[index]=a[0];
a[0]=t;
for(i=1; i<n; i++)
if(a[i]>a[index])
index=i;
t=a[index];
a[index]=a[n-1];
a[n-1]=t;
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
输入
3 (repeat=3)
5 4 3 5 1 2
4 1 5 6 7
5 5 4 3 2 1
输出
1 3 2 4 5
1 5 6 7
1 4 3 2 5
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, index, n, t;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
index=0;
for(i=1; i<n; i++)
if(a[i]<a[index])
index=i;
t=a[index];
a[index]=a[0];
a[0]=t;
for(i=1; i<n; i++)
if(a[i]>a[index])
index=i;
t=a[index];
a[index]=a[n-1];
a[n-1]=t;
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
输入一个正整数repeat (0 输入一个正整数n (1 例:括号内是说明
输入
3 (repeat=3)
3 1 6 4
3 10 8 1
5 1 2 5 4 0
输出
max=6,index=1 (最大值6的下标是1)
max=10,index=0 (最大值10的下标是0)
max=5,index=2 (最大值5的下标是2)
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, index, n;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
index=0;
for(i=1; i<n; i++)
if(a[i]>a[index])
index=i;
printf("max=%d,index=%d\n", a[index],index);
}
}
输入
3 (repeat=3)
3 1 6 4
3 10 8 1
5 1 2 5 4 0
输出
max=6,index=1 (最大值6的下标是1)
max=10,index=0 (最大值10的下标是0)
max=5,index=2 (最大值5的下标是2)
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, index, n;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
index=0;
for(i=1; i<n; i++)
if(a[i]>a[index])
index=i;
printf("max=%d,index=%d\n", a[index],index);
}
}
输入一个正整数repeat (0 输入一个正整数n (1 例:括号内是说明
输入
2 (repeat=2)
4 10 8 1 2
5 1 2 5 4 0
输出
2 1 8 10
0 4 5 2 1
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, n, temp;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
for(i=0; i<n/2; i++){
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
输入
2 (repeat=2)
4 10 8 1 2
5 1 2 5 4 0
输出
2 1 8 10
0 4 5 2 1
#include <stdio.h>
int main( )
{
int ri, repeat;
int i, n, temp;
int a[10];
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
for(i=0; i<n/2; i++){
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
模拟简单运算器的工作:输入一个算式(没有空格),遇等号"="说明输入结束,输出结果。
| October 26, 2007 15:14 | timmy | Via Original
输入一个正整数repeat (0 模拟简单运算器的工作:输入一个算式(没有空格),遇等号"="说明输入结束,输出结果。
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
例:括号内是说明
输入
2 (repeat=2)
15+2/3=
1+2*10-10/2=
输出
5
10
#include <stdio.h>
int main( )
{
int ri, repeat;
int op1, op2, res;
char operators;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &op1);
operators=getchar();
while(operators!='='){
scanf("%d",&op2);
switch(operators){
case '+':res=op1+op2;break;
case '-':res=op1-op2;break;
case '*':res=op1*op2;break;
case '/':res=op1/op2;break;
default:break;
}
op1=res;
operators=getchar();
}
printf("%d\n", res);
}
}
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
例:括号内是说明
输入
2 (repeat=2)
15+2/3=
1+2*10-10/2=
输出
5
10
#include <stdio.h>
int main( )
{
int ri, repeat;
int op1, op2, res;
char operators;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &op1);
operators=getchar();
while(operators!='='){
scanf("%d",&op2);
switch(operators){
case '+':res=op1+op2;break;
case '-':res=op1-op2;break;
case '*':res=op1*op2;break;
case '/':res=op1/op2;break;
default:break;
}
op1=res;
operators=getchar();
}
printf("%d\n", res);
}
}
输出 Fibonacci 序列(使用函数)
| October 26, 2007 14:44 | timmy | Via Original
输入一个正整数repeat (0 输入2 个正整数m和n(1<=m,n<=10000),输出m 和n之间所有的Fibonacci数。
Fibonacci 序列(第1项起):1 1 2 3 5 8 13 21 ......
要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。
输出语句:printf("%ld ", f);
例:括号内是说明
输入:
3 (repeat=3)
1 10 (m=1, n=10)
20 100 (m=20, n=100)
1000 6000 (m=1000, n=6000)
输出:
1 1 2 3 5 8 (1到10之间的Fibonacci数)
21 34 55 89 (20到100之间的Fibonacci数)
1597 2584 4181 (1000到6000之间的Fibonacci数)
#include "stdio.h"
#include "math.h"
int main( )
{
int ri,repeat;
int i,m,n;
long f;
long fib(int n);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d", &m, &n);
i=1;
while(fib(i)<=n){
f=fib(i);
if(f>=m) printf("%ld ", f);
i++;
}
printf("\n");
}
}
long fib(int n)
{
int i,x1,x2,x;
if(n==1||n==2)
x=1;
else{
x1=x2=1;
for(i=1;i<=n-2;i++){
x=x1+x2;
x1=x2;
x2=x;
}
}
return x;
}
Fibonacci 序列(第1项起):1 1 2 3 5 8 13 21 ......
要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。
输出语句:printf("%ld ", f);
例:括号内是说明
输入:
3 (repeat=3)
1 10 (m=1, n=10)
20 100 (m=20, n=100)
1000 6000 (m=1000, n=6000)
输出:
1 1 2 3 5 8 (1到10之间的Fibonacci数)
21 34 55 89 (20到100之间的Fibonacci数)
1597 2584 4181 (1000到6000之间的Fibonacci数)
#include "stdio.h"
#include "math.h"
int main( )
{
int ri,repeat;
int i,m,n;
long f;
long fib(int n);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d", &m, &n);
i=1;
while(fib(i)<=n){
f=fib(i);
if(f>=m) printf("%ld ", f);
i++;
}
printf("\n");
}
}
long fib(int n)
{
int i,x1,x2,x;
if(n==1||n==2)
x=1;
else{
x1=x2=1;
for(i=1;i<=n-2;i++){
x=x1+x2;
x1=x2;
x2=x;
}
}
return x;
}












