概念
C 語言是一種通用的、面向過程式的計算機程序設計語言。1972 年,爲了移植與開發 UNIX 操作系統,丹尼斯·裏奇在貝爾電話實驗室設計開發了 C 語言。
C 語言是一種廣泛使用的計算機語言,它與 Java 編程語言一樣普及,二者在現代軟件程序員之間都得到廣泛使用。
C++ 是一種中級語言,它是由 Bjarne Stroustrup 於 1979 年在貝爾實驗室開始設計開發的。C++ 進一步擴充和完善了 C 語言,是一種面向對象的程序設計語言。C++ 可運行於多種平臺上,如 Windows、MAC 操作系統以及 UNIX 的各種版本。
一個例子:HelloWord:
#include <stdio.h>
int main()
{
/* 我的第一個 C 程序 */
printf("Hello, World! \n");
return 0;
}
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
一道題目:賣菜
試題編號: | 201809-1 |
---|---|
試題名稱: | 賣菜 |
在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。
第一天,每個商店都自己定了一個價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二天的菜價設置爲自己和相鄰商店第一天菜價的平均值(用去尾法取整)。
注意,編號爲1的商店只有一個相鄰的商店2,編號爲n的商店只有一個相鄰的商店n-1,其他編號爲i的商店有兩個相鄰的商店i-1和i+1。
給定第一天各個商店的菜價,請計算第二天每個商店的菜價。
輸入格式
輸入的第一行包含一個整數n,表示商店的數量。
第二行包含n個整數,依次表示每個商店第一天的菜價。
輸出格式
輸出一行,包含n個正整數,依次表示每個商店第二天的菜價。
樣例輸入
8
4 1 3 1 6 5 17 9
樣例輸出
2 2 1 3 4 9 10 13
數據規模和約定
對於所有評測用例,2 ≤ n ≤ 1000,第一天每個商店的菜價爲不超過10000的正整數。
分析
對於所有評測用例,2 ≤ n ≤ 1000,第一天每個商店的菜價爲不超過10000的正整數。
常用的兩個c語言函數:
int(double a)去尾取整
向上取整ceil(中文意思天花板),進一法。
向下取整floor(中文意思地板),正數時相當於,去尾法
printf("%.lf ",floor(result));//取整
c.c
#include <stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d",&n);
int price[n];
int result[n];
for(i=0;i<n;i++)
scanf("%d",&price[i]);
for (int j = 0; j < price.length; j++) {
if (j == 0) result[j] = (price[j] + price[j + 1]) / 2;
else if (j == n - 1) result[j] = (price[j] + price[j - 1]) / 2;
else result[j] = (price[j - 1] + price[j] + price[j + 1]) / 3;
printf("%d ",result[j]);
}
//system("pause");
return 0;
}
c.cpp
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int price[n], result[n];
for(int i=0; i<n; i++)
cin >> price[i];
for (int j = 0; j < price.length; j++) {
if (j == 0) result[j] = (price[j] + price[j + 1]) / 2;
else if (j == n - 1) result[j] = (price[j] + price[j - 1]) / 2;
else result[j] = (price[j - 1] + price[j] + price[j + 1]) / 3;
cout << result[i] << " ";
}
//dev c++工具使用
//system("pause");
return 0;
}
java.java
import java.util.Scanner;
public class java {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] price = new int[n];
int[] result = new int[n];
for (int i = 0; i < price.length; i++) {
price[i] = input.nextInt();
}
for (int j = 0; j < price.length; j++) {
if (j == 0) result[j] = (price[j] + price[j + 1]) / 2;
else if (j == n - 1) result[j] = (price[j] + price[j - 1]) / 2;
else result[j] = (price[j - 1] + price[j] + price[j + 1]) / 3;
System.out.print(result[j] + " ");
}
}
}
javaOther.java
- readLine方法
- 功能:讀取一個文本行。通過下列字符之一即可認爲某行已終止:換行 (’\n’)、回車 (’\r’) 或回車後直接跟着換行。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class javaOther {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
try {
while ((line = br.readLine()) != null) {
int n = Integer.parseInt(line);
int[] price = new int[n];
int[] result = new int[n];
line = br.readLine();
String[] str = line.split(" ");
for (int i = 0; i < n; i++) {
price[i] = Integer.parseInt(str[i]);
}
for (int j = 0; j < price.length; j++) {
if (j == 0) result[j] = (price[j] + price[j + 1]) / 2;
else if (j == n - 1) result[j] = (price[j] + price[j - 1]) / 2;
else result[j] = (price[j - 1] + price[j] + price[j + 1]) / 3;
System.out.print(result[j] + " ");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}