作业1:
输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。
我的程序:
#include<stdio.h>
void main()
{
char s[100];int i,m;
printf("Enter a string:");
gets(s);
printf("Enter an integer:");
scanf_s("%d",&m);
s[m]='\0';
puts(s);
}
运行效果:
作业2:
编一个函数void fun( char *ss),从键盘输入一个字符串存入数组a中,利用函数再将a的内容前后倒置后重新存入数组a中并输出(要求用指针访问数组元素)
我的程序:
#include<stdio.h>
#include<string.h>
#define N 100
void fun(char *ss)
{
char s;
int n=strlen(ss);
for(int i=1;i<=n/2;i++)
{
s=*(ss+i-1);
*(ss+i-1)=*(ss+n-i);
*(ss+n-i)=s;
}
}
void main()
{
char a[N],*n;
n=a;
gets(a);
fun(n);
puts(a);
}
运行效果:
作业3:
编一个程序,输入4组整形数,每组3个数,分别求出每组最大的数字,并输出
要求:用函数int max(int *x,int *y,int *z)求出三个数中的最大数
我的程序
#include<stdio.h>
#define M 4
#define N 3
int max(int *x,int *y,int *z )
{
if(*x>*y&&*x>*z)
return *x;
if(*y>*x&&*y>*z)
return *y;
if(*z>*x&&*z>*y)
return *z;
}
void main()
{ printf("请输入四个由三个数组成的数组:\n");
int i;
int arr[M][N];
for(i=0;i<M;i++)
scanf_s("%d %d %d",&arr[i][0],&arr[i][1],&arr[i][2]);
for(i=0;i<M;i++)
printf("第%d组的最大值为%d\n",i+1,max(arr[i],arr[i]+1,arr[i]+2));
}
运行效果:
作业4:
输入字符串s,将数字字符放入d数组中,最后输出d中的字符串。
我的程序:
//输入字符串s,将数字字符放入d数组中,最后输出d中的字符串。
#include<stdio.h>
#include<string.h>
#define N 20
void main()
{
printf("请输入一个数组:\n");
int n,j=0;
char str[N],b[N];
gets(str);
n=strlen(str);
for(int i=0;i<n;i++)
{
if(str[i]!='\0'&&str[i]<='9'&&str[i]>='0')
{
*(b+j)=*(str+i);
j++;
}
else
continue;
}
*(b+j)='\0';
puts(b);
}
运行效果: