1. 程式人生 > >來自剛剛進入打卡工作的落後者的練習題——04

來自剛剛進入打卡工作的落後者的練習題——04

又刷了三天的題,還是有好多過不去的,特在此讓學長學姐,大神們指點一下。

第一題:求整數段和。 給定兩個整數A和B,輸出從A到B的所有整數以及這些數的和。 輸入格式: 輸入在一行中給出2個整數A和B,其中−100≤A≤B≤100,其間以空格分隔。 輸出格式: 首先順序輸出從A到B的所有整數,每5個數字佔一行,每個數字佔5個字元寬度,向右對齊。最後在一行中按Sum = X的格式輸出全部數字的和X。 輸入樣例: -3 8 輸出樣例: -3 -2 -1 0 1 2 3 4 5 6 7 8 Sum = 30 接下來,就是氣skr人的程式,一直也解決不了。

#include <stdio.h>
int main ()
{
	int x;
	int y;
	
  scanf ("%d",&x);
  scanf ("%d",&y);
	
	int count=0;
	int sum=0;
	int i;
	
	for (i=x;i<y+1;i++)
	{
		printf ("%5d",i);
		count++;
		sum+=i;
		
		if (count%5==0)
		{
			printf ("\n");
		} 
	}

	printf ("\n");
	printf ("Sum = %d",sum);
  return 0;
}

不知道到底是什麼毛病(但是,顯示的是格式錯誤),反正就是過不了

錯誤大概是這個樣子的

a.c: In function ‘main’:
a.c:7:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%d",&x);
   ^~~~~~~~~~~~~~~
a.c:8:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%d",&y);
   ^~~~~~~~~~~~~~~

英語不好的我,看不太明白。希望這個是他系統的毛病。(即使我問了,但是有的學長仍然解決不了)

第二題:求素數(還是找個有含金量的問題吧) 題目概要: 本題的目標很簡單,就是判斷一個給定的正整數是否素數。 輸入格式: 輸入在第一行給出一個正整數N(≤ 10),隨後N行,每行給出一個小於2​31​​的需要判斷的正整數。 輸出格式: 對每個需要判斷的正整數,如果它是素數,則在一行中輸出Yes,否則輸出No。 輸入樣例: 2 11 111 輸出樣例: Yes No 然後,我的程式碼就編成了這個樣子

#include <stdio.h>
int main ()
{
	int n;
	scanf ("%d",&n);
	
	int a[n];
	int i;
	int j;
	
	for (i=0;i<n;i++)
	{
		scanf ("%d",&a[i]);
	}
	for (i=0;i<n;i++)
	{
		int isprime=1;
		
		for (j=2;j<a[i];j++)
		{
			if (a[i]%j==0||a[i]==4)
			{
				isprime=0;
			}
		}
		if (isprime==1)
		{
			printf ("Yes");
		}
		else
		{
			printf ("No");
		}
		if (i<n-1)
		{
			printf ("\n");
		}
	}
	return 0;
}

之後,就開始懷疑人生了。 問題是執行超時,但是,當前面加上#include <math.h>然後後面用上i<sqrt(a[i])的話,執行超時的問題是解決了,又出現了新的問題,運算錯誤,其實我也知道,這樣的話,4和9都是被歸為素數,但是,我忘記怎麼把這樣開方之後是素數的數排除了。 在這裡,學到了一些東西,在編寫程式時,能簡化就儘量簡化,用其他的標頭檔案能夠節省運算時間。

內容比較少,且都是問題,希望大佬們幫幫忙。