1-1 sdut-C语言实验- A+B for Input-Output Practice (不确定次数循环)
任务描述:
Your task is to Calculate a + b.Too easy?! Of course! I specially designed the problem for all beginners.You must have found that some problems have the same titles with this one, yes, all these problems were designed for the same aim.
输入格式:
The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line.
输出格式:
For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input.
输入样例:
1 5 10 20
输出样例:
6 30
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int a,b; while(~scanf("%d%d",&a,&b)) { printf("%d\n",a+b); } return 0; }
1-2 sdut-C语言实验-数位数
任务描述:
给定一个正整数 n ,请你求出它的位数。
输入格式:
单组输入,输入一个整数 n 。(1<= n <= 2147483647)
输出格式:
输出一行,包含一个整数,即为 n 的位数。
输入样例:
1234567
输出样例:
7
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,i; scanf("%d",&n); for(i=1;n>0;i++) { n/=10; } printf("%d",i-1); return 0; }
1-3 sdut- C语言实验-计算1到n的和(循环结构)
任务描述:
从键盘上输入任意一个整数n,计算1到n的和。
输入格式:
从键盘输入任意整数n。
输出格式:
输出1到n的和。
输入样例:
3
输出样例:
6
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,i,d; scanf("%d",&n); for(i=1;i<=n;i++) { d+=i; } printf("%d",d); return 0; }
1-4 sdut- C语言实验-判断素数(循环结构)
任务描述:
从键盘上输入任意一个正整数,然后判断该数是否为素数。如果是素数则输出”This is a prime.”
否则输出“This is not a prime.”
输入格式:
输入任意一个正整数n(1 <= n <= 1000000)。
输出格式:
判断n是否为素数,并输出判断结果:如果n是素数则输出”This is a prime.”否则输出“This is not a prime.”特别提醒:请注意对1的判定,1不是素数。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
This is a prime.
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,i,b=0; scanf("%d",&n); if(n==1) { b=1; } for(i=2;i<n;i++) { if(n%i==0) { b=1; break; } } if(b) printf("This is not a prime.\n"); else printf("This is a prime.\n"); return 0; }
1-5 sdut-C语言实验- 数列有序!
任务描述:
有n(n<=100)个整数,已经按照从大到小顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。
输入格式:
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0表示输入数据的结束,本行不做处理。
输出格式:
对于每个测试实例,输出插入新的元素后的数列。
输入样例:
在这里给出一组输入。例如:
3 3 4 2 1 0 0
输出样例:
在这里给出相应的输出。例如:
4 3 2 1
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,m,i,a[100],t,j; while(~scanf("%d%d",&n,&m)&&(n||m)) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } a[n]=m; for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<=n;i++) { if(i==n) printf("%d",a[i]); else printf("%d ",a[i]); } } return 0; }
1-6 sdut-C语言实验- 冒泡排序中数据交换的次数
任务描述:
听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。
输入格式:
输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N <= 100
输出格式:
输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数
输入样例:
在这里给出一组输入。例如:
3 5 1 2 3 4 5 4 5 3 7 1 2 2 1
输出样例:
在这里给出相应的输出。例如:
0 4 1
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int t,n,a[100],c,j,b,i; scanf("%d",&t); while(t--) { c=0; scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d",&a[i]); } for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if(a[j]>a[j+1]) { b=a[j]; a[j]=a[j+1]; a[j+1]=b; c++; } } } printf("%d\n",c); } return 0; }
1-7 sdut- C语言实验-数组逆序(数组移位)
任务描述:
有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m < n < 100)个位置。
输入格式:
输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。
输出格式:
按先后顺序输出n个整数。
输入样例:
在这里给出一组输入。例如:
5 1 2 3 4 5 2
输出样例:
在这里给出相应的输出。例如:
4 5 1 2 3
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,m,a[100],i,t; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&m); while(m--) { t=a[n-1]; for(i=n-1;i>0;i--) { a[i]=a[i-1]; } a[0]=t; } for(i=0;i<n;i++) { if(i==n-1) printf("%d",a[i]); else printf("%d ",a[i]); } return 0; }
1-8 sdut-C语言实验- 对称矩阵的判定
任务描述:
对于一个n行n列的矩阵,先输入矩阵的行数,再依次输入矩阵的每行元素,判断该矩阵是否为对称矩阵,若矩阵对称输出“Yes.”,不对称输出”No.”。
输入格式:
输入有多组,每一组第一行输入一个正整数N(N<=20),表示矩阵的行数(若N=0,表示输入结束)。下面依次输入N行数据。
输出格式:
若矩阵对称输出“Yes.”,不对称输出”No.”。
输入样例:
在这里给出一组输入。例如:
3 6 3 12 3 18 8 12 8 7 3 6 9 12 3 5 8 12 6 3 0
输出样例:
在这里给出相应的输出。例如:
Yes. No.
相关限制:
代码长度限制16KB 时间限制400ms 内存限制64MB 栈限制8192KB
答案:
#include <stdio.h> int main() { int n,a[20][20],i,j,b; while(~scanf("%d",&n)&&n!=0) { b=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]!=a[j][i]) { b=1; break; } } } if(b) printf("No.\n"); else printf("Yes.\n"); } return 0; }