プロフェッショナルコースの実際の質問のレビュー(2018)

1.タイトルの説明:
すべての「水仙の数」を出力します。いわゆる「水仙の数」とは、桁の3乗和が数自体と等しい3次元の数を指します。たとえば、153 = 1 1 1 + 5 5 5 + 3 3 3であるため、153は水仙の数です。

コード:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
    
    
	int b,s,g;
	int i;
	for(i=100;i<=999;i++)
	{
    
    
		b=i/100;
		s=(i-b*100)/10;
		g=i%10;
		if((b*b*b+s*s*s+g*g*g)==i)
		{
    
    
			printf("%d\n",i);
		}
	}
	return 0;
}

2.タイトルの説明:
選択方法で10個の整数を並べ替えます

#include<stdio.h>
int main(void)
{
    
    
	int arr[10]={
    
    10,9,8,7,6,5,4,3,2,1};
	int i,j;
	int min,temp;
	
	for(i=0;i<10;i++)
	{
    
    
		min=i;
		for(j=i+1;j<10;j++)
		{
    
    
			if(arr[min]>arr[j])
			{
    
    
				min=j;
			}
		}
		if(min!=i)
		{
    
    
			temp=arr[min];
			arr[min]=arr[i];
			arr[i]=temp;
		}
	}
	printf("排序后的数组为:\n");
	for(i=0;i<10;i++)
	{
    
    
		printf("%d",arr[i]);
		
	}
	return 0;
}

注:最小のものを見つけるたびに、jではなくiと交換する必要があります。

3.タイトルの説明:
関数を記述し、実際のパラメーターから文字列を渡し、文字列内の文字、数字、スペース、およびその他の文字の数を数え、メイン関数に文字列を入力して、上記の結果を出力します。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
	int english=0;
	int space=0;
	int number=0;
	int other=0;
	
void count( char *str)
{
    
    
	
    int i;
	for(i=0;i<strlen(str);i++)
	{
    
    
		if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
		{
    
    
			english++;
		}else if(str[i]==' ')
		{
    
    
			space++;
		}else if(str[i]>='0'&&str[i]<='9')
		{
    
    
			number++;
		}else{
    
    
			other++;
		}
	 } 
	   

 } 
int main(void)
{
    
    
	char str[100];
	gets(str);
	count(str);
	 printf("英文字母的个数为%d\n",english);
	 printf("空格的个数为%d\n",space);
	 printf("数字的个数为%d\n",number);
     printf("其他字符的个数为%d\n",other);	 
	return 0;
}

注:メイン関数の質問と出力データを注意深く確認してください。

4.タイトルの説明:
2つのディスクファイル「A」と「B」があり、それぞれに文字の行が格納されています。次に、これら2つのファイルの情報を(アルファベット順に)マージして出力するプログラムを作成する必要があります。新しいファイル「C」に移動します。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
    
    
	FILE *fa,*fb,*fc;
	int i,j;
	char a[100];
	char b[100];
	char temp;
	if((fa=fopen("A.txt","r"))==NULL)
	{
    
    
		printf("can not open this file.");
		exit(0);
	}
	fgets(a,100,fa);	
	fclose(fa);
	if((fb=fopen("B.txt","r"))==NULL)
	{
    
    
		printf("can not open this file.");
	    exit(0);
	}
	fgets(b,100,fb);
	fclose(fb);
	strcat(a,b);
	for(i=0;i<strlen(a)-1;i++)
	{
    
    
		for(j=0;j<strlen(a)-1-i;j++)
		{
    
    
			if(a[j]>a[j+1])
			{
    
    
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	fclose(fb);
	if((fc=fopen("C.txt","w"))==NULL)
	{
    
    
		printf("can not open this file.");
	    exit(0);
	}
	fputs(a,fc);
	fclose(fc);
	return 0;
}

注:
1。ファイルを開いて閉じます
2. strcmp()文字列比較関数
3. strcat()文字列スプライシング関数
4. strcpy()文字列コピー関数。後者の文字列は前者の文字列を上書きします。これは連結関数ではありません。

おすすめ

転載: blog.csdn.net/qq_44867340/article/details/121863936