石家庄铁道大学 C程序设计代码1-3天
(部分资料来源于网上,仅供学习使用,不作其他用途
祝19级及之后学习顺利
电信专业可以 CSDN私聊我。感谢 老谢的部分代码支持!)
数组元素循环右移问题:
法一:
#include <stdio.h>
int main () {
int n,m,i;
scanf("%d%d",&n,&m);
int a[n+m];
// printf("\n初始化数组\n");
for ( i=0; i<n; i++){ //初始化数组
scanf("%d",&a[i]);
// printf(“a[%d]=%d\t”,i,a[i]);
}
// printf("\n整体向右移%d位*\n",m);
for ( i=n-1; i>=0; i–){ //整体向右移m位
a[i+m] = a[i];
// printf(“a[%d]=%d\t”,i+m,a[i]);
}
// printf("\n把最后%d位移到最前面\n",m);
while(m–){ //把最后m位移到最前面
a[m] = a[n+m];
// printf(“a[%d]=%d\t”,m,a[n+m]);
}
// printf("\n*****************遍历输出数组****************\n");
for ( i=0; i<n; i++){ //遍历输出数组
printf("%d",a[i]);
if ( i != n-1)
printf(" ");
}
return 0;
}
法二:
#include <stdio.h>
#define MAXN 100//宏定义。当语句中 出现 MAXN 时 用 100去替代,替代完了 再编译
int main(void) {
int n, m, num[MAXN * 2], i, temp;//等于 int num[200]
scanf("%d %d", &n, &m);//输入n m n为数字数,m为移动位置数
for (i = 0; i < n; i++) {
scanf("%d", &num[i]); //存入 n个数字到数组Num【】
}
m %= n; //m=m%n 把m原来的值更换为m%n的值(考虑M比N大,或者恰好且正好是N的倍数的情况,此时等于m=0.即移动距离为0)
for (i = n + m - 1; i > m - 1; i--) { //将数组num数组整体后移动m个单位
num[i] = num[i - m];
}
for (i = 0; i <= m - 1; i++) { //将最后m个数移动到 前m的位置
num[i] = num[n + i];
}
for (i = 0; i < n; i++) { //输出
if (i == 0) { // 考虑最小 N M 情况
printf("%d", num[i]);
}
else {
printf(" %d", num[i]);
}
}
printf("\n");
return 0;
}
2. 求最大值及其下标
#include<stdio.h>
int main()
{
int n,t,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
/找最大值a[t]/
t=0; /假设a[t]是最大值,即下标为0的元素最小/
for(i=1;i<n;i++)
if(a[i]>a[t]) /如果a[i]比假设的最大值还大/
t=i; /再假设a[i[是新的最大值,即下标为i的元素最大/
printf("%d %d",a[t],t); /输出最大值和对应的下标/
return 0;
}
//验证思路1
#include <stdio.h>
int main()
{
int n,h,w,a,b,c;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&h,&w);
b=(h-100)0.92;
if(w<b0.1+b&&w>b-b0.1)
printf(“You are wan mei!\n”);
else if(w>=b0.1+b)
printf(“You are tai pang le!\n”);
else if(w<=b-b0.1)
printf(“You are tai shou le!\n”);
}
return 0;
}
/#思路二:include<stdio.h>
int main()
{
int n,h,w,a,b,c;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&h,&w);
b=(h-100)0.92;
if(abs(w-b)<b0.1)
printf(“You are wan mei!\n”);
else if(w>b)
printf(“You are tai pang le!\n”);
else
printf(“You are tai sho