Pages: 10/14 First page Previous page 5 6 7 8 9 10 11 12 13 14 Next page Final page [ View by Articles | List ]

交换最小值和最大值

| October 30, 2007 13:54 | timmy | Via Original
输入一个正整数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");
  }
}
Tags:

求最大值及其下标

| October 30, 2007 13:49 | timmy | Via Original
输入一个正整数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);
  }
}
Tags:

逆序输出

| October 30, 2007 13:45 | timmy | Via Original
输入一个正整数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");
  }
}
Tags:
输入一个正整数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);
  }
}
Tags:

输出 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;
}
Tags:
Pages: 10/14 First page Previous page 5 6 7 8 9 10 11 12 13 14 Next page Final page [ View by Articles | List ]